Swift-sanakirja (esimerkkien kanssa)

Tässä opetusohjelmassa opit sanakirjasta, sanakirjan luomisesta ja joistakin yleisimmistä toiminnoista sanakirjassa.

Edellisessä Swift Arrays -artikkelissa opimme kuinka voimme tallentaa useita arvoja muuttujaan / vakioon. Tässä artikkelissa keskustelemme siitä, kuinka voimme tallentaa tiedot / arvot avainarvopareina.

Mikä on sanakirja?

Sanakirja on yksinkertaisesti säilö, johon mahtuu useita tietoja avainarvoparina järjestämättömällä tavalla.

Jokainen arvo liittyy yksilölliseen avaimeen ja tallentaa tietoja järjestämättömään luetteloon sarjasta alkaen, ts. Et saa elementtejä samassa järjestyksessä kuin määritit sanakirjan kohteet.

Voit käyttää sanastoa matriisin sijasta, kun sinun on haettava arvoa jonkin tunnisteen avulla kokoelmasta. Oletetaan, että haluat ehkä etsiä maan pääkaupungista. Siinä tapauksessa luot sanakirjan, jossa on keskeinen maa ja arvo pääkaupunki. Nyt saat pääkaupungin kokoelmasta etsimällä avainmaan kanssa.

Yksinkertaisesti sanottuna avain ja pari yhdistetään arvoon. Edellä olevassa esimerkissä pariliitettiin maa pääkaupunkiinsa.

Kuinka julistaa sanakirja Swiftissä?

Voit luoda tyhjän sanakirjan määrittämällä key:valuetietotyyppi hakasulkeissa ().

Esimerkki 1: Tyhjän sanakirjan julistaminen

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

Kun suoritat ohjelmaa, tulos on:

 (:)

TAI

Voit myös määrittää tyhjän sanakirjan seuraavasti:

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

Yllä olevassa ohjelmassa olemme julistaneet vakion tyhjäDic of type sanakirja tyypin Intja tyypin arvolla olevalla avaimella ja alustaneet Stringsen 0 arvolla.

TAI

Koska Swift on tyypin päättelykieli, voit luoda sanakirjan myös suoraan määrittelemättä tietotyyppiä, mutta se on alustettava joillakin arvoilla, jotta kääntäjä voi päätellä sen tyypin seuraavasti:

Esimerkki 2: Sanakirjan julistaminen joillakin arvoilla

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

Kun suoritat ohjelmaa, tulos on:

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

Yllä olevassa ohjelmassa olemme julistaneet sanakirjan määrittelemättä tyyppiä nimenomaisesti, mutta alustamalla joitain oletuselementtejä.

Elementti on avaimessa: arvopari, jossa avain on tyyppiä Stringja arvo Inttyyppiä. Koska sanakirja on järjestämätön luettelo, print(someDic)arvot annetaan eri järjestyksessä kuin määritelty.

Esimerkki 3: Sanakirjan luominen kahdesta taulukosta

Voimme myös luoda sanakirjan matriisien avulla.

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

Kun suoritat ohjelmaa, tulos on:

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

zip(customKeys,customValues)Luo yllä olevassa ohjelmassa uuden sekvenssin, jossa kukin elementti edustaa customKeys- ja customValues-arvoja. Lisätietoja vetoketjun toiminnasta on Swit zip -sivulla.

Nyt voimme välittää tämän sekvenssin Dictionary(uniqueKeysWithValues:)alustajalle ja luoda uuden sanakirjan. Siksi print(newDictionary)tuottaa uuden sanakirjan, jossa on kahden matriisin elementtejä.

Kuinka käyttää sanakirjan elementtejä Swiftissä?

Matriiseina voit käyttää sanakirjan elementtejä käyttämällä alaindeksin syntaksia. Sinun on lisättävä avain arvoon, jota haluat käyttää, hakasulkeissa heti sanakirjan nimen jälkeen.

Esimerkki 4: Sanakirjan elementtien käyttö

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

Kun suoritat ohjelmaa, tulos on:

 Valinnainen (1) Valinnainen (8) 

Voit käyttää sanakirjan elementtejä myös sisääntulosilmukoilla.

Esimerkki 5: Sanakirjan elementtien käyttö sisäänsyöttösilmukalla

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

Kun suoritat ohjelmaa, tulos on:

 avain: b arvo: 2 avain: arvo: 1 avain: i arvo: 9 avain: c arvo: 3 avain: e arvo: 5 avain: f arvo: 6 avain: g arvo: 7 

Kuinka muokata sanakirjaelementtejä Swiftissä?

Voit lisätä elementtejä sanakirjaan alaindeksin syntaksin avulla. Sinun on sisällytettävä uusi avain alaindeksiin ja määritettävä uusi tyypin arvo sanakirjasta.

Esimerkki 6: Elementtien asettaminen sanakirjaan

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

Kun suoritat ohjelmaa, tulos on:

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

Edellä olevassa ohjelmassa olemme määrittäneet arvon Ei löydy oletusparametriin, kun käytämme sanakirjaa. Jos avaimen arvoa ei ole, palautetaan oletusarvo, muuten arvo palautetaan.

Meidän tapauksessamme avainta "nepal" ei ole läsnä, joten ohjelma palauttaa Ei löydy .

Mielenkiintoisia artikkeleita...