Kamus Swift (Dengan Contoh)

Dalam tutorial ini, Anda akan belajar tentang apa itu kamus, membuat kamus dan beberapa operasi umum dalam kamus.

Di artikel Swift Arrays sebelumnya, kita belajar bagaimana kita bisa menyimpan banyak nilai dalam sebuah variabel / konstanta. Pada artikel ini, kita akan membahas bagaimana kita dapat menyimpan data / nilai sebagai pasangan nilai kunci.

Apa kamus itu?

Dictionary hanyalah sebuah wadah yang dapat menampung banyak data sebagai key-value pair dengan cara yang tidak berurutan.

Setiap nilai dikaitkan dengan kunci unik dan menyimpan data dalam daftar tak berurutan pada Set, yaitu Anda tidak mendapatkan elemen dalam urutan yang sama seperti yang Anda tentukan item dalam kamus.

Anda dapat menggunakan kamus alih-alih larik ketika Anda perlu mencari nilai dengan beberapa pengenal dalam koleksi. Misalkan, Anda mungkin ingin mencari ibu kota negara. Dalam hal ini, Anda akan membuat kamus dengan negara kunci dan ibu kota nilai. Sekarang, Anda mendapatkan ibu kota dari koleksi dengan menelusuri dengan negara kunci.

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

Bagaimana cara mendeklarasikan kamus di Swift?

Anda dapat membuat kamus kosong dengan menentukan key:valuetipe Data di dalam tanda kurung siku ().

Contoh 1: Menyatakan kamus kosong

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

Saat Anda menjalankan program, hasilnya adalah:

 (:)

ATAU

Anda juga dapat mendefinisikan kamus kosong seperti di bawah ini:

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

Dalam program di atas, kita telah mendeklarasikan sebuah kamus tipe kosongDik konstan dengan kunci tipe Intdan nilai tipe Stringdan menginisialisasinya dengan nilai 0.

ATAU

Karena, Swift adalah bahasa inferensi tipe, Anda juga dapat membuat kamus secara langsung tanpa menentukan Tipe Data tetapi harus menginisialisasi dengan beberapa nilai sehingga compiler dapat menyimpulkan tipenya sebagai:

Contoh 2: Mendeklarasikan 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) 

Saat Anda menjalankan program, hasilnya adalah:

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

Dalam program di atas, kita telah mendeklarasikan kamus tanpa mendefinisikan tipe secara eksplisit tetapi menginisialisasi dengan beberapa elemen default.

Elemen tersebut ada dalam pasangan kunci: nilai di mana kunci berjenis Stringdan nilai Intberjenis. Karena kamus adalah daftar yang tidak berurutan print(someDic), nilai-nilai tersebut dikeluarkan dalam urutan yang berbeda dari yang ditentukan.

Contoh 3: Membuat kamus dari dua larik

Kita juga bisa membuat kamus menggunakan array.

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

Saat Anda menjalankan program, hasilnya adalah:

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

Dalam program di atas, zip(customKeys,customValues)buat Sequence tuple baru dengan setiap elemen mewakili nilai dari customKeys dan customValues. Untuk mempelajari lebih lanjut tentang cara kerja zip, kunjungi Swit zip.

Sekarang, kita dapat meneruskan urutan ini ke Dictionary(uniqueKeysWithValues:)penginisialisasi dan membuat Kamus baru. Oleh karena itu, print(newDictionary)mengeluarkan Dictionary baru dengan elemen dari dua array.

Bagaimana cara mengakses elemen kamus di Swift?

Sebagai array, Anda dapat mengakses elemen kamus dengan menggunakan sintaks subskrip. Anda perlu memasukkan kunci dari nilai yang ingin Anda akses dalam tanda kurung siku tepat setelah nama kamus.

Contoh 4: Mengakses elemen 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")) 

Saat Anda menjalankan program, hasilnya adalah:

 Opsional (1) Opsional (8) 

Anda juga dapat mengakses elemen kamus menggunakan for-in loop.

Contoh 5: Mengakses elemen kamus dengan for-in loop

 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)") ) 

Saat Anda menjalankan program, hasilnya adalah:

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

Bagaimana cara memodifikasi elemen kamus di Swift?

Anda dapat menambahkan elemen dalam kamus dengan menggunakan sintaks subskrip. Anda perlu memasukkan kunci baru sebagai indeks subskrip dan menetapkan nilai baru dari tipe pada Kamus.

Contoh 6: Menyetel elemen dalam kamus

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

Saat Anda menjalankan program, hasilnya 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 menetapkan nilai Not Found di parameter default saat mengakses kamus. Jika nilai tidak ada untuk kunci, nilai default dikembalikan jika nilai dikembalikan.

Dalam kasus kami, kunci "nepal" tidak ada, sehingga program mengembalikan Tidak Ditemukan .

Artikel yang menarik...