Slovník Swift (s příklady)

V tomto kurzu se dozvíte, co je to slovník, vytvoření slovníku a některé běžné operace ve slovníku.

V předchozím článku o Swift Arrays jsme se naučili, jak můžeme ukládat více hodnot do proměnné / konstanty. V tomto článku budeme diskutovat o tom, jak můžeme ukládat data / hodnoty jako páry klíčových hodnot.

Co je to slovník?

Slovník je jednoduše kontejner, který může neuspořádaným způsobem pojmout více dat jako pár klíč – hodnota.

Každá hodnota je spojena s jedinečným klíčem a ukládá data v neuspořádaném seznamu jako Sady, tj. Nedostanete prvky ve stejném pořadí, v jakém jste definovali položky ve slovníku.

Pokud potřebujete vyhledat hodnotu s nějakým identifikátorem v kolekci, můžete namísto pole použít slovník. Předpokládejme, že budete chtít prohledat hlavní město země. V takovém případě vytvoříte slovník s klíčovou zemí a hodnotou hlavního města. Nyní získáte hlavní město ze sbírky prohledáním klíčové země.

Jednoduše řečeno, spárujete klíč s hodnotou. Ve výše uvedeném příkladu jsme spárovali zemi s jejím hlavním městem.

Jak deklarovat slovník v Swift?

Prázdný slovník můžete vytvořit zadáním key:valuedatového typu v hranatých závorkách ().

Příklad 1: Deklarace prázdného slovníku

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

Když spustíte program, výstup bude:

 (:)

NEBO

Prázdný slovník můžete také definovat níže:

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

Ve výše uvedeném programu jsme deklarovali konstantní prázdný slovník slovníku typu s klíčem typu Inta hodnotou typu Stringa inicializovali jsme jej 0 hodnotami.

NEBO

Vzhledem k tomu, že Swift je jazyk pro odvozování typů, můžete také vytvořit slovník přímo bez zadání datového typu, ale je nutné jej inicializovat pomocí některých hodnot, aby kompilátor mohl odvodit svůj typ jako:

Příklad 2: Deklarace slovníku s některými hodnotami

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

Když spustíte program, výstup bude:

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

Ve výše uvedeném programu jsme deklarovali slovník, aniž bychom explicitně definovali typ, ale inicializovali jsme některé výchozí prvky.

Prvek je v páru klíč: hodnota, kde klíč je typu Stringa hodnota je Inttypu. Vzhledem k tomu, že slovník je neuspořádaný, seznam print(someDic)vydává hodnoty v jiném pořadí, než je definováno.

Příklad 3: Vytvoření slovníku ze dvou polí

Můžeme také vytvořit slovník pomocí polí.

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

Když spustíte program, výstup bude:

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

Ve výše uvedeném programu zip(customKeys,customValues)vytvoří novou sekvenci n-tice, přičemž každý prvek představuje hodnotu z customKeys a customValues. Chcete-li se dozvědět více o tom, jak funguje zip, navštivte Swit zip.

Nyní můžeme tuto sekvenci předat Dictionary(uniqueKeysWithValues:)inicializátoru a vytvořit nový slovník. Proto print(newDictionary)vydá nový slovník s prvky ze dvou polí.

Jak získat přístup k slovníkovým prvkům v Swiftu?

Jako pole můžete přistupovat k prvkům slovníku pomocí syntaxe dolního indexu. Okamžitě za názvem slovníku musíte do hranatých závorek zahrnout klíč hodnoty, ke které chcete získat přístup.

Příklad 4: Přístup k prvkům slovníku

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

Když spustíte program, výstup bude:

 Volitelné (1) Volitelné (8) 

K prvkům slovníku můžete přistupovat také pomocí smyček pro vstup.

Příklad 5: Přístup k prvkům slovníku pomocí smyč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)") ) 

Když spustíte program, výstup bude:

 klíč: b hodnota: 2 klíč: hodnota: 1 klíč: i hodnota: 9 klíč: hodnota c: 3 klíč: hodnota e: 5 klíč: hodnota f: 6 klíč: hodnota g: 7 

Jak upravit prvky slovníku v Swiftu?

Můžete přidat prvky ve slovníku pomocí syntaxe dolního indexu. Musíte zahrnout nový klíč jako index dolního indexu a přiřadit novou hodnotu typu jako Slovník.

Příklad 6: Nastavení prvků ve slovníku

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

Když spustíte program, výstup bude:

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

Ve výše uvedeném programu jsme při přístupu do slovníku ve výchozím parametru zadali hodnotu Nenalezeno . Pokud hodnota pro klíč neexistuje, vrátí se výchozí hodnota, jinak se vrátí hodnota.

V našem případě klíč „nepál“ není přítomen, takže program vrátí Nenalezeno .

Zajímavé články...