Swift Dictionary (z primeri)

V tej vadnici boste izvedeli, kaj je slovar, ustvarjanje slovarja in nekatere pogoste operacije v slovarju.

V prejšnjem članku Swift Arrays smo izvedeli, kako lahko v spremenljivko / konstanto shranimo več vrednosti. V tem članku bomo razpravljali o tem, kako lahko shranimo podatke / vrednosti kot pare ključnih vrednosti.

Kaj je slovar?

Slovar je preprosto vsebnik, ki lahko na neurejen način hrani več podatkov kot par ključ-vrednost.

Vsaka vrednost je povezana z edinstvenim ključem in shranjuje podatke na neurejenem seznamu od Sets, tj. Elementov ne dobite v enakem vrstnem redu, kot ste jih določili v slovarju.

Namesto matrike lahko uporabite slovar, kadar morate v zbirki poiskati vrednost z določenim identifikatorjem. Recimo, da boste morda želeli poiskati glavno mesto države. V tem primeru boste ustvarili slovar s ključno državo in vrednostjo glavnega mesta. Zdaj dobite glavno mesto iz zbirke z iskanjem po ključni državi.

Preprosto povedano, ključ povežete z vrednostjo. V zgornjem primeru smo državo seznanili s svojim glavnim mestom.

Kako razglasiti slovar v jeziku Swift?

Prazen slovar lahko ustvarite tako, da key:valuev oglatih oklepajih določite vrsto podatkov ().

Primer 1: razglasitev praznega slovarja

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

Ko zaženete program, bo rezultat:

 (:)

ALI

Kot spodaj lahko določite tudi prazen slovar:

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

V zgornjem programu smo razglasili konstantni slovar emptyDic of type s ključem tipa Intin vrednostjo tipa Stringin ga inicializirali z 0 vrednostmi.

ALI

Ker je Swift jezik za sklepanje o tipih, lahko tudi slovar ustvarite neposredno, ne da bi določili vrsto podatkov, vendar ga morate inicializirati z nekaterimi vrednostmi, tako da lahko prevajalnik izbere svoj tip kot:

2. primer: razglasitev slovarja z nekaterimi vrednostmi

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

Ko zaženete program, bo rezultat:

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

V zgornjem programu smo razglasili slovar, ne da bi eksplicitno opredelili vrsto, ampak inicializirali z nekaterimi privzetimi elementi.

Element je v paru ključ: vrednost, kjer je ključ tipa, Stringvrednost pa Inttipa. Ker je slovar neurejen seznam, print(someDic)izpiše vrednosti v drugačnem vrstnem redu, kot je določeno.

Primer 3: Ustvarjanje slovarja iz dveh nizov

Slovar lahko ustvarimo tudi z uporabo nizov.

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

Ko zaženete program, bo rezultat:

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

V zgornjem programu zip(customKeys,customValues)ustvari novo zaporedje nabora z vsakim elementom, ki predstavlja vrednost iz customKeys in customValues. Če želite izvedeti več o tem, kako deluje zip, obiščite Swit zip.

Zdaj lahko to zaporedje posredujemo Dictionary(uniqueKeysWithValues:)inicializatorju in ustvarimo nov slovar. Zato print(newDictionary)prikaže nov slovar z elementi iz dveh nizov.

Kako dostopati do slovarskih elementov v Swiftu?

Kot nizi lahko do elementov slovarja dostopate s sintakso podpisa. Takoj za imenom slovarja morate v oglate oklepaje vključiti ključ vrednosti, do katere želite dostopati.

4. primer: Dostop do elementov slovarja

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

Ko zaženete program, bo rezultat:

 Neobvezno (1) Neobvezno (8) 

Do elementov slovarja lahko dostopate tudi s pomočjo vhodnih zank.

Primer 5: Dostop do elementov slovarja z zanko for-in

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

Ko zaženete program, bo rezultat:

 ključ: b vrednost: 2 ključ: vrednost: 1 ključ: i vrednost: 9 ključ: vrednost c: 3 ključ: vrednost e: 5 ključ: vrednost f: 6 ključ: vrednost g: 7 

Kako spremeniti slovarske elemente v Swiftu?

Elemente lahko dodate v slovar z uporabo sintakse podpisa. Kot indeks indeksa morate vključiti nov ključ in določiti novo vrednost tipa kot slovar.

Primer 6: Nastavitev elementov v slovarju

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

Ko zaženete program, bo rezultat:

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

V zgornjem programu smo med privzetim parametrom med dostopom do slovarja določili vrednost Not Found . Če vrednost ključa ne obstaja, se vrne privzeta vrednost, sicer pa vrednost.

V našem primeru ključa "nepal" ni, zato program vrne Not Found .

Zanimive Članki...