Kamus Swift (Dengan Contoh)

Dalam tutorial ini, anda akan belajar mengenai apa itu kamus, membuat kamus dan beberapa operasi biasa dalam kamus.

Dalam artikel Swift Arrays sebelumnya, kami belajar bagaimana kami dapat menyimpan beberapa nilai dalam pemboleh ubah / pemalar. Dalam artikel ini, kita akan membincangkan bagaimana kita dapat menyimpan data / nilai sebagai pasangan nilai utama.

Apa itu kamus?

Kamus hanyalah wadah yang dapat menyimpan banyak data sebagai pasangan nilai-kunci dengan cara yang tidak tersusun.

Setiap nilai dikaitkan dengan kunci unik dan menyimpan data dalam senarai tidak tersusun seperti Set, iaitu anda tidak mendapatkan elemen dalam urutan yang sama seperti yang anda tetapkan item dalam kamus.

Anda mungkin menggunakan kamus dan bukannya tatasusunan apabila anda perlu mencari nilai dengan beberapa pengecam dalam koleksi. Andaikan, anda mungkin ingin mencari ibu kota negara. Sekiranya demikian, anda akan membuat kamus dengan negara utama dan ibu kota yang bernilai. Sekarang, anda mendapat ibu kota dari koleksi dengan mencari dengan negara utama.

Secara sederhana, anda memasangkan kunci ke nilai. Dalam contoh di atas, kami memasangkan sebuah negara ke ibu kotanya.

Bagaimana mengisytiharkan kamus di Swift?

Anda boleh membuat kamus kosong dengan menentukan key:valuejenis Data di dalam tanda kurung ().

Contoh 1: Menyatakan kamus kosong

 let emptyDic:(Int:String) = (:) print(emptyDic) 

Semasa anda menjalankan program, outputnya adalah:

 (:)

ATAU

Anda juga boleh menentukan kamus kosong seperti di bawah:

 let emptyDic:Dictionary = (:) print(emptyDic) 

Dalam program di atas, kami telah menyatakan kamus jenis Dic kosong tetap dengan kunci jenis Intdan nilai jenis Stringdan memulakannya dengan 0 nilai.

ATAU

Oleh kerana, Swift adalah bahasa inferensi jenis, anda juga dapat membuat kamus secara langsung tanpa menentukan Jenis Data tetapi harus menginisialisasi dengan beberapa nilai sehingga penyusun dapat menyimpulkan jenisnya sebagai:

Contoh 2: Menyatakan kamus dengan beberapa nilai

 let someDic = ("a":1, "b":2, "c":3, "d":4, "e":5, "f":6, "g":7, "h":8, "i":9) print(someDic) 

Semasa anda menjalankan program, outputnya adalah:

 ("b": 2, "a": 1, "i": 9, "c": 3, "e": 5, "f": 6, "g": 7, "d": 4, " h ": 8)

Dalam program di atas, kami telah menyatakan kamus tanpa menentukan jenisnya secara eksplisit tetapi memulakan dengan beberapa elemen lalai.

Elemen ada dalam kunci: pasangan nilai di mana kunci adalah jenis Stringdan nilai adalah Intjenis. Oleh kerana kamus adalah senarai yang tidak tersusun print(someDic)menghasilkan nilai dalam urutan yang berbeza daripada yang ditentukan.

Contoh 3: Membuat kamus dari dua tatasusunan

Kita juga boleh membuat kamus menggunakan tatasusunan.

 let customKeys = ("Facebook", "Google", "Amazon") let customValues = ("Mark", "Larry", "Jeff") let newDictionary = Dictionary(uniqueKeysWithValues: zip(customKeys,customValues)) print(newDictionary) 

Semasa anda menjalankan program, outputnya adalah:

 ("Amazon": "Jeff", "Google": "Larry", "Facebook": "Mark")

Dalam program di atas, zip(customKeys,customValues)buat Urutan tuple baru dengan setiap elemen mewakili nilai dari customKeys dan customValues. Untuk mengetahui lebih lanjut mengenai cara zip berfungsi, lawati Swit zip.

Sekarang, kita boleh Dictionary(uniqueKeysWithValues:)meneruskan urutan ini ke pemula dan membuat Kamus baru. Oleh itu, print(newDictionary)mengeluarkan Kamus baru dengan unsur dari dua tatasusunan.

Bagaimana cara mengakses elemen kamus di Swift?

Sebagai tatasusunan, anda boleh mengakses elemen kamus dengan menggunakan sintaks langganan. Anda perlu memasukkan kunci nilai yang ingin anda akses dalam tanda kurung persegi tepat setelah nama kamus.

Contoh 4: Mengakses unsur-unsur kamus

 let someDic = ("a":1, "b":2, "c":3, "d":4, "e":5, "f":6, "g":7, "h":8, "i":9) print(someDic("a")) print(someDic("h")) 

Semasa anda menjalankan program, outputnya adalah:

 Pilihan (1) Pilihan (8) 

Anda juga boleh mengakses elemen kamus menggunakan gelung masuk.

Contoh 5: Mengakses elemen kamus dengan gelung masuk

 let someDic = ("a":1, "b":2, "c":3, "d":4, "e":5, "f":6, "g":7, "h":8, "i":9) for (key,value) in someDic ( print("key:(key) value:(value)") ) 

Semasa anda menjalankan program, outputnya adalah:

 kunci: nilai b: 2 kunci: nilai: 1 kunci: nilai saya: 9 kunci: nilai c: 3 kunci: nilai e: 5 kunci: nilai f: kunci 6: nilai g: 7 

Bagaimana cara mengubah elemen kamus di Swift?

Anda boleh menambahkan unsur dalam kamus dengan menggunakan sintaks langganan. Anda perlu memasukkan kunci baru sebagai indeks langganan dan memberikan nilai baru dari jenis Kamus.

Contoh 6: Menetapkan elemen dalam kamus

 var someDictionary = ("Nepal":"Kathmandu", "China":"Beijing", "India":"NewDelhi") someDictionary("Japan") = "Tokyo" print(someDictionary) 

Semasa anda menjalankan program, outputnya adalah:

 ("Japan": "Tokyo", "China": "Beijing", "India": "NewDelhi", "Nepal": "Kathmandu")

In the above example, we've created a new key-value pair "Japan": "Tokyo" in the given dictionary by using the subscript syntax.

You can also use subscript syntax to change the value associated with a particular key as:

Example 7: Changing elements of a dictionary

 var someDictionary = ("Nepal":"Kathmandu", "China":"Beijing", "India":"NewDelhi") someDictionary("Nepal") = "KATHMANDU" print(someDictionary) 

When you run the program, the output will be:

 ("China": "Beijing", "India": "NewDelhi", "Nepal": "KATHMANDU")

Some helpful built-in Dictionary functions & properties

1. isEmpty

This property determines if an dictionary is empty or not. It returns true if a dictionary does not contain any value otherwise returns false.

Example 8: How isEmpty works?

 let someDictionary = ("Nepal":"Kathmandu", "China":"Beijing", "India":"NewDelhi") print(someDictionary.isEmpty) 

When you run the program, the output will be:

 false

2. first

This property is used to access the first element of a dictionary.

Example 9: How first works?

 let someDictionary = ("Nepal":"Kathmandu", "China":"Beijing", "India":"NewDelhi") print(someDictionary.first) 

When you run the program, the output will be:

 Optional((key: "China", value: "Beijing"))

3. count

This property returns the total number of elements (key-value pair) in a dictionary.

Example 10: How count works?

 let someDictionary = ("Nepal":"Kathmandu", "China":"Beijing", "India":"NewDelhi") print(someDictionary.count) 

When you run the program, the output will be:

 3

4. keys

This property returns all the keys inside the dictionary.

Example 11: How keys works?

 var someDictionary = ("Nepal":"Kathmandu", "China":"Beijing", "India":"NewDelhi") let dictKeys = Array(someDictionary.keys) print(dictKeys) 

When you run the program, the output will be:

 ("China", "India", "Nepal")

Similarly, you can use values to get all the values inside the dictionary.

5. removeValue

This function removes and returns the value specified with the key from the dictionary. Both key value pair will be removed from the dictionary.

Example 12: How removeValue() works?

 var someDictionary = ("Nepal":"Kathmandu", "China":"Beijing", "India":"NewDelhi") let val = someDictionary.removeValue(forKey: "Nepal") print(val) print(someDictionary) 

When you run the program, the output will be:

 Optional("Kathmandu") ("India": "NewDelhi", "China": "Beijing") 

Similarly, you can also use removeAll function to empty an dictionary.

Things to Remember

1. While using subscript syntax to access elements of an dictionary in Swift, you must be sure the key lies in the index otherwise you will get a nil value. Let's see this in example:

Example 13: Key must be present

 var someDictionary = ("Nepal":"Kathmandu", "China":"Beijing", "India":"NewDelhi") let val = someDictionary("Japan") print(val) 

When you run the program, the output will be:

 nil

In the above program, there is no key Japan. So when you try to access the value of the key "Japan", you will get a nil value.

2. Likewise, key-values are case-sensitive in Swift, so you must make sure the correct cased key/value is used. Otherwise, you will get a nil value. Let's see this in example:

Example 14: Keys are case-sensitive

 var someDictionary = ("Nepal":"Kathmandu", "China":"Beijing", "India":"NewDelhi") let val = someDictionary("nepal") print(val) 

When you run the program, the output will be:

 nil

In the above program, there is no key nepal. So when you try to access the value of the key "nepal", you will get a nil value.

3. There is also a way to provide a default value if the value for a given key does not exist. Let's see this in example:

Example 12: Default value for non-existent key

 var someDictionary = ("Nepal":"Kathmandu", "China":"Beijing", "India":"NewDelhi") let val = someDictionary("nepal", default:"Not Found") print(val) 

When you run the program, the output will be:

 Not Found

Dalam program di atas, kami telah menentukan nilai Tidak Ditemui dalam parameter lalai semasa mengakses kamus. Sekiranya nilai tidak ada untuk kunci, nilai lalai dikembalikan jika tidak, nilainya dikembalikan.

Dalam kes kami, kunci "nepal" tidak ada, jadi program mengembalikan Tidak Ditemui .

Artikel menarik...