Saya mulai belajar swift
dengan mengikuti iBook- The Swift Programming Language
on Swift yang disediakan oleh Apple. Buku itu mengatakan untuk membuat kamus kosong yang harus digunakan [:]
sama dengan saat mendeklarasikan array sebagai []
:
Saya mendeklarasikan array kosong sebagai berikut:
let emptyArr = [] // or String[]()
Tetapi saat mendeklarasikan kamus kosong, saya mendapatkan kesalahan sintaksis:
let emptyDict = [:]
Bagaimana cara mendeklarasikan kamus kosong?
ios
swift
dictionary
z22
sumber
sumber
array :() dictionary :{}
statement print consolelet arr = [] let dict = [:] println("array :\(arr)") println("dictionary :\(dict)")
Jawaban:
Catatan : jika Anda akan mengubah isi kamus dari waktu ke waktu maka nyatakan sebagai
var
(variabel). Anda dapat mendeklarasikan kamus kosong sebagailet
(konstan) tetapi tidak ada gunanya jika Anda memiliki niat untuk mengubah isinya dari waktu ke waktu, karena konstanta tidak dapat diubah setelah telah diinisialisasi.Jawaban lama :
Membuat kamus jenis yang kosong
<String, String>
akan terlihat sebagai berikut:sumber
var
seperti yang saya sarankan kepada Anda: developer.apple.com/library/prerelease/ios/documentation/Swift/…__NSDictionaryI
. Coba tambahkan elemen ke sanaemptyDict
dan itu akan gagal pada waktu kompilasi.Anda tidak dapat menggunakan
[:]
kecuali informasi jenis tersedia.Anda harus memberikannya secara eksplisit dalam hal ini:
var
berarti itu bisa berubah, sehingga Anda dapat menambahkan entri ke dalamnya. Sebaliknya, jika Anda membuatnyalet
maka Anda tidak dapat memodifikasinya lebih lanjut (let
artinya konstan).Anda dapat menggunakan
[:]
notasi steno jika informasi jenis dapat disimpulkan, misalnyaDalam contoh terakhir kamus diketahui memiliki tipe
Dictionary<String, String>
oleh baris pertama. Perhatikan bahwa Anda tidak harus menentukannya secara eksplisit, tetapi telah disimpulkan.sumber
var dict: [String: String] = [:]
The dokumentasi Swift merekomendasikan cara berikut untuk menginisialisasi Kamus kosong:
Saya agak bingung ketika pertama kali menemukan pertanyaan ini karena jawaban yang berbeda menunjukkan cara yang berbeda untuk menginisialisasi Kamus yang kosong. Ternyata sebenarnya ada banyak cara yang bisa Anda lakukan, meskipun ada yang sedikit berlebihan atau terlalu banyak diberi kemampuan Swift untuk menyimpulkan jenisnya.
Setelah Anda memiliki Kamus kosong Anda dapat menambahkan pasangan nilai kunci seperti ini:
Jika Anda ingin mengosongkan kamus lagi, Anda dapat melakukan hal berikut:
Jenisnya masih
<String, String>
karena itulah yang diinisialisasi.sumber
var emptyDictArray = [[String: String]()]
var emptyDictArray = [Dictionary<String, String>()]
Gunakan ini akan berhasil.
sumber
var emtpyAry = [String]()
. Masuk akal.Anda bisa mendeklarasikannya seperti ini:
sumber
Anda harus memberikan kamus jenis
Jika kompiler dapat menyimpulkan tipe, Anda dapat menggunakan sintaks yang lebih pendek
sumber
Cepat:
sumber
Saya bermain dengan ini juga. Tampaknya aneh bahwa Anda hanya dapat mendeklarasikan kamus kosong dan kemudian menambahkan pasangan kunci / nilai seperti itu:
Tetapi Anda dapat membuat Kamus yang menerima jenis nilai berbeda dengan menggunakan jenis "Apa saja" seperti:
sumber
Anda perlu secara eksplisit memberi tahu tipe data atau tipe yang dapat disimpulkan ketika Anda mendeklarasikan apa pun di Swift.
Cepat 3
Sampel di bawah ini mendeklarasikan kamus dengan kunci sebagai
Int
tipe dan nilainya sebagaiString
tipe.Metode 1: Inisialisasi
Metode 2: Sintaks Tulisan Singkatan
Metode 3: Kamus Literal
sumber
Cepat 4
sumber
Jika Anda ingin membuat kamus umum dengan jenis apa pun
sumber
Saya biasanya menggunakan
sumber
Mendeklarasikan & Menginisialisasi Kamus dalam Swift
Kamus String
ATAU
Kamus Int
ATAU
Kamus AnyObject
ATAU
Kamus Array String
ATAU
Array Kamus String
ATAU
sumber
Anda dapat mendeklarasikannya sebagai nihil dengan yang berikut:
Maka hal yang menyenangkan adalah Anda sudah mengeset (perhatikan saya menggunakan var dan tidak membiarkan, anggap ini bisa berubah dan tidak berubah). Kemudian Anda bisa mengisinya nanti:
sumber
Anda dapat menggunakan kode berikut:
sumber
var dictList = String: String untuk kamus di swift var arrSectionTitle = String untuk array di swift
sumber
Sangat berguna untuk menemukan jalan Anda
var dict: Kamus = [:]
sumber
^ ini menambahkan kamus untuk input [string: double]
sumber