Slovník Swift (s príkladmi)

V tomto výučbe sa dozviete, čo je to slovník, vytvoríte slovník a niektoré bežné operácie v slovníku.

V predchádzajúcom článku o Swift Arrays sme sa dozvedeli, ako môžeme ukladať viac hodnôt do premennej / konštanty. V tomto článku budeme diskutovať o tom, ako môžeme ukladať údaje / hodnoty ako páry kľúč - hodnota.

Čo je to slovník?

Slovník je jednoducho kontajner, ktorý môže neusporiadaným spôsobom pojať viac údajov ako pár kľúč - hodnota.

Každá hodnota je priradená k jedinečnému kľúču a ukladá údaje do neusporiadaného zoznamu od Sety, tj. Nedostanete prvky v rovnakom poradí, v akom ste definovali položky v slovníku.

Slovník môžete použiť namiesto poľa, ak potrebujete vyhľadať hodnotu pomocou nejakého identifikátora v zbierke. Predpokladajme, že budete chcieť prehľadať hlavné mesto krajiny. V takom prípade vytvoríte slovník s kľúčovou krajinou a hodnotou hlavného mesta. Teraz získate hlavné mesto zo zbierky vyhľadaním kľúčovej krajiny.

Jednoducho povedané, spárujete kľúč s hodnotou. V uvedenom príklade sme spárovali krajinu s jej hlavným mestom.

Ako deklarovať slovník v Swifte?

Prázdny slovník môžete vytvoriť zadaním key:valuetypu údajov v hranatých zátvorkách ().

Príklad 1: Vyhlásenie prázdneho slovníka

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

Po spustení programu bude výstup:

 (:)

ALEBO

Môžete tiež definovať prázdny slovník, ako je uvedené nižšie:

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

Vo vyššie uvedenom programe sme deklarovali konštantný emptyDic slovníka typu s kľúčom typu Inta hodnoty typu Stringa inicializovali sme ho 0 hodnotami.

ALEBO

Pretože Swift je jazyk na odvodenie typov, môžete tiež vytvoriť slovník priamo bez zadania dátového typu, ale musíte ho inicializovať pomocou niektorých hodnôt, aby kompilátor mohol odvodiť jeho typ ako:

Príklad 2: Deklarovanie slovníka s niektorými hodnotami

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

Po spustení programu bude výstup:

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

Vo vyššie uvedenom programe sme deklarovali slovník bez explicitného definovania typu, ale inicializácie pomocou niektorých predvolených prvkov.

Element je v páre kľúč: hodnota, kde kľúč je typu Stringa hodnota je Inttypu. Pretože slovník je neusporiadaný, zoznam print(someDic)vydáva hodnoty v inom poradí, ako je definované.

Príklad 3: Vytvorenie slovníka z dvoch polí

Slovník môžeme vytvoriť aj pomocou polí.

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

Po spustení programu bude výstup:

 („Amazon“: „Jeff“, „Google“: „Larry“, „Facebook“: „Mark“)

Vo vyššie uvedenom programe sa zip(customKeys,customValues)vytvorí nová sekvencia n-tice, pričom každý prvok predstavuje hodnotu z customKeys a customValues. Ak sa chcete dozvedieť viac o fungovaní zipsu, navštívte Swit zip.

Teraz môžeme túto postupnosť odovzdať Dictionary(uniqueKeysWithValues:)inicializátoru a vytvoriť nový slovník. Preto print(newDictionary)vydá nový slovník s prvkami z dvoch polí.

Ako získať prístup k slovníkom v Swift?

Ako polia môžete získať prístup k prvkom slovníka pomocou syntaxe dolného indexu. Hneď za názvom slovníka je potrebné zahrnúť kľúč s hodnotou, ku ktorej chcete získať prístup, do hranatých zátvoriek.

Príklad 4: Prístup k prvkom slovníka

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

Po spustení programu bude výstup:

 Voliteľné (1) Voliteľné (8) 

K prvkom slovníka môžete pristupovať aj pomocou slučiek for-in.

Príklad 5: Prístup k prvkom slovníka pomocou slučky 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)") ) 

Po spustení programu bude výstup:

 kľúč: hodnota b: 2 kľúč: hodnota a 1: kľúč: hodnota i: 9 kľúč: hodnota c: 3 kľúč: hodnota e: 5 kľúč: hodnota f: 6 kľúč: hodnota g: 7 

Ako upraviť slovníkové prvky v Swifte?

Prvky v slovníku môžete pridať pomocou syntaxe dolného indexu. Musíte zahrnúť nový kľúč ako index dolného indexu a priradiť novú hodnotu typu ako Slovník.

Príklad 6: Nastavovanie prvkov v slovníku

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

Po spustení programu bude výstup:

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

Vo vyššie uvedenom programe sme pri prístupe do slovníka určili v predvolenom parametri hodnotu Not Found . Ak hodnota pre kľúč neexistuje, vráti sa predvolená hodnota, inak sa vráti hodnota.

V našom prípade nie je kľúč „nepál“ k dispozícii, takže program vráti nenájdené .

Zaujímavé články...