kamus Swift


Kamus Swift digunakan untuk menyimpan koleksi data yang tidak tersusun daripada jenis yang sama Kamus Swift akan mengesan jenis elemen dan melaporkan ralat jika jenisnya berbeza.

Setiap nilai dalam kamus Swift dikaitkan dengan kunci unik dan kunci itu berfungsi sebagai pengecam data nilai dalam kamus.

Tidak seperti item data dalam tatasusunan, item data dalam kamus tidak mempunyai susunan tertentu. Kami menggunakan kamus apabila kami perlu mengakses data melalui pengecam (kunci) Kaedah ini sebahagian besarnya sama dengan cara kami menggunakan kamus untuk mencari makna perkataan dalam dunia sebenar.

Kunci kamus Swift boleh menjadi integer atau rentetan tanpa sebarang sekatan jenis, tetapi ia mestilah unik.

Jika anda mencipta kamus dan menetapkannya kepada pembolehubah, kamus yang dibuat boleh diubah suai. Ini bermakna selepas kamus dicipta, item dalam kamus boleh ditukar dengan menambah, memadam atau mengubah suai. Jika anda menetapkan kamus kepada pemalar, kamus tidak boleh diubah suai dan saiz mahupun kandungan kamus tidak boleh diubah suai.


Buat Kamus

Kita boleh menggunakan sintaks berikut untuk mencipta kamus kosong jenis tertentu:

var someDict =  [KeyType: ValueType]()

Berikut adalah untuk mencipta kamus kosong dengan kekunci jenis Int , sintaks ringkas jenis nilai ialah String:

var someDict = [Int: String]()

Berikut ialah contoh mencipta kamus:

var someDict:[Int:String] = [1:"One", 2:"Two", 3:"Three"]

Mengakses kamus

Kita boleh berdasarkan indeks kamus Untuk mengakses elemen tatasusunan, sintaksnya adalah seperti berikut:

var someVar = someDict[key]

Kita boleh belajar cara mencipta, memulakan dan mengakses kamus melalui contoh berikut:

import Cocoa

var someDict:[Int:String] = [1:"One", 2:"Two", 3:"Three"]

var someVar = someDict[1]

print( "key = 1 的值为 \(someVar)" )
print( "key = 2 的值为 \(someDict[2])" )
print( "key = 3 的值为 \(someDict[3])" )

Hasil keluaran pelaksanaan program di atas ialah:

key = 1 的值为 Optional("One")
key = 2 的值为 Optional("Two")
key = 3 的值为 Optional("Three")

Ubah Suai Kamus

Kita boleh menggunakan updateValue(forKey:) untuk menambah atau mengemas kini kandungan kamus. Jika kunci tidak wujud, tambahkan nilai Jika ia wujud, ubah suai nilai yang sepadan dengan kunci. Kaedah updateValue(_:forKey:) mengembalikan nilai Pilihan. Contohnya adalah seperti berikut:

import Cocoa

var someDict:[Int:String] = [1:"One", 2:"Two", 3:"Three"]

var oldVal = someDict.updateValue("One 新的值", forKey: 1)

var someVar = someDict[1]

print( "key = 1 旧的值 \(oldVal)" )
print( "key = 1 的值为 \(someVar)" )
print( "key = 2 的值为 \(someDict[2])" )
print( "key = 3 的值为 \(someDict[3])" )

Output pelaksanaan program di atas ialah:

key = 1 旧的值 Optional("One")
key = 1 的值为 Optional("One 新的值")
key = 2 的值为 Optional("Two")
key = 3 的值为 Optional("Three")

Anda juga boleh mengubah suai nilai kamus dengan menentukan kunci, seperti ditunjukkan di bawah:

import Cocoa

var someDict:[Int:String] = [1:"One", 2:"Two", 3:"Three"]

var oldVal = someDict[1]
someDict[1] = "One 新的值"
var someVar = someDict[1]

print( "key = 1 旧的值 \(oldVal)" )
print( "key = 1 的值为 \(someVar)" )
print( "key = 2 的值为 \(someDict[2])" )
print( "key = 3 的值为 \(someDict[3])" )

Atur cara di atas Output pelaksanaan ialah:

key = 1 旧的值 Optional("One")
key = 1 的值为 Optional("One 新的值")
key = 2 的值为 Optional("Two")
key = 3 的值为 Optional("Three")

Alih keluar pasangan Nilai-Kekunci

Kita boleh menggunakan kaedah removeValueForKey() untuk mengalih keluar pasangan nilai kunci kamus. Kaedah ini mengembalikan nilai yang dialih keluar jika kunci wujud, atau tiada jika ia tidak wujud. Contohnya adalah seperti berikut:

import Cocoa

var someDict:[Int:String] = [1:"One", 2:"Two", 3:"Three"]

var removedValue = someDict.removeValueForKey(2)

print( "key = 1 的值为 \(someDict[1])" )
print( "key = 2 的值为 \(someDict[2])" )
print( "key = 3 的值为 \(someDict[3])" )

Hasil output pelaksanaan program di atas ialah:

key = 1 的值为 Optional("One")
key = 2 的值为 nil
key = 3 的值为 Optional("Three")

Anda juga boleh mengalih keluar pasangan nilai kunci (nilai kunci) dengan menyatakan nilai kunci sebagai sifar . Contohnya adalah seperti berikut:

import Cocoa

var someDict:[Int:String] = [1:"One", 2:"Two", 3:"Three"]

someDict[2] = nil

print( "key = 1 的值为 \(someDict[1])" )
print( "key = 2 的值为 \(someDict[2])" )
print( "key = 3 的值为 \(someDict[3])" )

Hasil output pelaksanaan program di atas ialah:

key = 1 的值为 Optional("One")
key = 2 的值为 nil
key = 3 的值为 Optional("Three")

Melintasi kamus

Kita boleh menggunakan <🎜 gelung >for-in untuk merentasi pasangan nilai kunci dalam kamus. Contohnya adalah seperti berikut:

import Cocoa

var someDict:[Int:String] = [1:"One", 2:"Two", 3:"Three"]

for (key, value) in someDict {
   print("字典 key \(key) -  字典 value \(value)")
}

Output pelaksanaan program di atas ialah:

字典 key 2 -  字典 value Two
字典 key 3 -  字典 value Three
字典 key 1 -  字典 value One

Kita juga boleh menggunakan kaedah enumerate() untuk melakukan traversal kamus, yang mengembalikan indeks kamus dan ( key, value) pair , contohnya adalah seperti berikut:

import Cocoa

var someDict:[Int:String] = [1:"One", 2:"Two", 3:"Three"]

for (key, value) in someDict.enumerate() {
    print("字典 key \(key) -  字典 (key, value) 对 \(value)")
}

Hasil output pelaksanaan program di atas ialah:

字典 key 0 -  字典 (key, value) 对 (2, "Two")
字典 key 1 -  字典 (key, value) 对 (3, "Three")
字典 key 2 -  字典 (key, value) 对 (1, "One")


Kamus ditukarkan kepada tatasusunan

Anda boleh mengekstrak nilai kunci kamus Ya dan ditukar kepada tatasusunan berasingan. Contohnya adalah seperti berikut:

import Cocoa

var someDict:[Int:String] = [1:"One", 2:"Two", 3:"Three"]

let dictKeys = [Int](someDict.keys)
let dictValues = [String](someDict.values)

print("输出字典的键(key)")

for (key) in dictKeys {
    print("\(key)")
}

print("输出字典的值(value)")

for (value) in dictValues {
    print("\(value)")
}

Hasil output pelaksanaan program di atas ialah:

输出字典的键(key)
2
3
1
输出字典的值(value)
Two
Three
One

atribut count

Kita boleh menggunakan atribut count baca sahaja untuk mengira bilangan pasangan nilai kunci yang ada pada kamus:

import Cocoa

var someDict1:[Int:String] = [1:"One", 2:"Two", 3:"Three"]
var someDict2:[Int:String] = [4:"Four", 5:"Five"]

print("someDict1 含有 \(someDict1.count) 个键值对")
print("someDict2 含有 \(someDict2.count) 个键值对")

The output pelaksanaan program di atas Hasilnya ialah:

someDict1 含有 3 个键值对
someDict2 含有 2 个键值对

atribut isEmpty

Y Kita boleh menggunakan atribut baca sahaja isEmpty untuk menentukan sama ada kamus kosong dan kembalikan nilai Boolean:

import Cocoa

var someDict1:[Int:String] = [1:"One", 2:"Two", 3:"Three"]
var someDict2:[Int:String] = [4:"Four", 5:"Five"]
var someDict3:[Int:String] = [Int:String]()

print("someDict1 = \(someDict1.isEmpty)")
print("someDict2 = \(someDict2.isEmpty)")
print("someDict3 = \(someDict3.isEmpty)")

Hasil keluaran pelaksanaan program di atas ialah:

someDict1 = false
someDict2 = false
someDict3 = true