Brzi rječnik (s primjerima)

U ovom vodiču naučit ćete što je rječnik, stvaranje rječnika i neke uobičajene radnje u rječniku.

U prethodnom članku Swift Arrays naučili smo kako možemo pohraniti više vrijednosti u varijablu / konstantu. U ovom ćemo članku razgovarati o tome kako možemo pohraniti podatke / vrijednosti kao parove ključnih vrijednosti.

Što je rječnik?

Rječnik je jednostavno spremnik koji na neuređen način može držati više podataka kao par ključ / vrijednost.

Svaka je vrijednost povezana s jedinstvenim ključem i pohranjuje podatke na neuređeni popis od Sets, tj. Ne dobivate elemente istim redoslijedom kao što ste definirali stavke u rječniku.

Možete koristiti rječnik umjesto niza kada trebate potražiti vrijednost s nekim identifikatorom u zbirci. Pretpostavimo da ćete možda htjeti pretražiti glavni grad države. U tom ćete slučaju stvoriti rječnik s ključnom državom i glavnim gradom. Sada glavni grad iz kolekcije dobivate pretraživanjem ključne države.

Jednostavno rečeno, uparite ključ s vrijednošću. U gornjem primjeru uparili smo zemlju s glavnim gradom.

Kako proglasiti rječnik u Swiftu?

Možete stvoriti prazan rječnik navođenjem key:valuetipa podataka unutar uglatih zagrada ().

Primjer 1: Proglašavanje praznog rječnika

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

Kada pokrenete program, izlaz će biti:

 (:)

ILI

Također možete definirati prazan rječnik kao u nastavku:

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

U gore navedenom programu proglasili smo konstantni rječnik emptyDic tipa s ključem tipa Inti vrijednošću tipa Stringi inicijalizirali ga s 0 vrijednosti.

ILI

Budući da je Swift jezik zaključivanja tipa, također možete izravno stvoriti rječnik bez navođenja tipa podataka, ali ga morate inicijalizirati s nekim vrijednostima kako bi kompajler mogao zaključiti o njegovom tipu kao:

Primjer 2: Deklariranje rječnika s nekim vrijednostima

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

Kada pokrenete program, izlaz će biti:

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

U gore navedenom programu proglasili smo rječnik bez eksplicitnog definiranja tipa, ali inicijalizacijom s nekim zadanim elementima.

Element je u paru ključ: vrijednost gdje je ključ tipa, Stringa vrijednost Inttipa. Budući da je rječnik neuređenog popisa print(someDic), vrijednosti se iznose različitim redoslijedom od definiranog.

Primjer 3: Izrada rječnika od dva polja

Također možemo stvoriti rječnik pomoću nizova.

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

Kada pokrenete program, izlaz će biti:

 ("Amazon": "Jeff", "Google": "Larry", "Facebook": "Označi")

U gore navedenom programu zip(customKeys,customValues)kreira novi Slijed korijena sa svakim elementom koji predstavlja vrijednost iz customKeys i customValues. Da biste saznali više o tome kako zip funkcionira, posjetite Swit zip.

Sada možemo proslijediti ovaj slijed Dictionary(uniqueKeysWithValues:)inicijalizatoru i stvoriti novi Rječnik. Stoga, print(newDictionary)izlazi novi Rječnik s elementima iz dva polja.

Kako pristupiti elementima rječnika u Swiftu?

Kao nizovi, elementima rječnika možete pristupiti pomoću sintakse indeksa. Ključ vrijednosti kojoj želite pristupiti trebate uključiti u uglate zagrade odmah nakon naziva rječnika.

Primjer 4: Pristup elementima rječnika

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

Kada pokrenete program, izlaz će biti:

 Neobvezno (1) Neobvezno (8) 

Elementima rječnika možete pristupiti i pomoću petlji za ulazak.

Primjer 5: Pristup elementima rječnika pomoću petlje 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)") ) 

Kada pokrenete program, izlaz će biti:

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

Kako izmijeniti elemente rječnika u Swiftu?

Elemente jezika možete dodati u rječnik pomoću sintakse indeksa. Morate uključiti novi ključ kao indeks indeksa i dodijeliti novu vrijednost tipa kao iz Rječnika.

Primjer 6: Postavljanje elemenata u rječniku

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

Kada pokrenete program, izlaz će biti:

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

U gore navedenom programu odredili smo vrijednost Not Found u zadanom parametru tijekom pristupa rječniku. Ako vrijednost ne postoji za ključ, vraća se zadana vrijednost u suprotnom se vraća vrijednost.

U našem slučaju, ključ "nepal" nije prisutan, pa program vraća Nije pronađeno .

Zanimljivi članci...