Швидкий словник (з прикладами)

У цьому посібнику ви дізнаєтесь про те, що таке словник, як створити словник та деякі загальні операції зі словником.

У попередній статті Swift Arrays ми дізналися, як можна зберігати кілька значень у змінній / константі. У цій статті ми обговоримо, як ми можемо зберігати дані / значення як пари ключових значень.

Що таке словник?

Словник - це просто контейнер, який може невпорядковано зберігати кілька даних як пару ключ-значення.

Кожне значення пов'язане з унікальним ключем і зберігає дані у невпорядкованому списку станом на Набори, тобто ви не отримуєте елементи в тому самому порядку, як ви визначили елементи у словнику.

Ви можете використовувати словник замість масиву, коли вам потрібно знайти значення з деяким ідентифікатором у колекції. Припустимо, можливо, ви захочете здійснити пошук у столиці країни. У такому випадку ви створите словник із ключовою країною та значенням столиці. Тепер ви отримуєте столицю з колекції, шукаючи ключову країну.

Простіше кажучи, ви поєднуєте ключ зі значенням. У наведеному вище прикладі ми створили пару між країною та її столицею.

Як оголосити словник у Swift?

Ви можете створити порожній словник, вказавши key:valueтип даних у квадратних дужках ().

Приклад 1: Оголошення порожнього словника

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

Коли ви запускаєте програму, результат буде:

 (:)

АБО

Ви також можете визначити порожній словник, як показано нижче:

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

У наведеній вище програмі ми оголосили константу emptyDic з словника типу з ключем типу Intта значенням типу Stringта ініціалізували його значеннями 0.

АБО

Оскільки Swift є мовою виводу типів, ви також можете створювати словник безпосередньо, не вказуючи тип даних, але повинен ініціалізуватись деякими значеннями, щоб компілятор міг зробити висновок про його тип як:

Приклад 2: Оголошення словника з деякими значеннями

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

Коли ви запускаєте програму, результат буде:

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

У наведеній вище програмі ми оголосили словник, не визначаючи тип явно, але ініціалізуючи деякими елементами за замовчуванням.

Елемент знаходиться в парі ключ: значення, де ключ має тип, Stringа значення - Intтип. Оскільки словник є невпорядкованим списком, print(someDic)результати виводяться в іншому порядку, ніж визначено.

Приклад 3: Створення словника з двох масивів

Ми також можемо створити словник за допомогою масивів.

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

Коли ви запускаєте програму, результат буде:

 ("Amazon": "Джефф", "Google": "Ларрі", "Facebook": "Позначити")

У вищезазначеній програмі zip(customKeys,customValues)створює нову послідовність кортежу з кожним елементом, що представляє значення з customKeys та customValues. Щоб дізнатись більше про те, як працює zip, відвідайте Swit zip.

Тепер ми можемо передати цю послідовність в Dictionary(uniqueKeysWithValues:)ініціалізатор і створити новий словник. Тому print(newDictionary)виводить новий словник з елементами з двох масивів.

Як отримати доступ до елементів словника в Swift?

Як масиви ви можете отримати доступ до елементів словника за допомогою синтаксису підрядкових. Вам потрібно включити ключ значення, до якого ви хочете отримати доступ, у квадратних дужках відразу після назви словника.

Приклад 4: Доступ до елементів словника

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

Коли ви запускаєте програму, результат буде:

 Необов’язково (1) Необов’язково (8) 

Ви також можете отримати доступ до елементів словника за допомогою вхідних циклів.

Приклад 5: Доступ до елементів словника за допомогою циклу 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)") ) 

Коли ви запускаєте програму, результат буде:

 ключ: значення b: 2 ключ: значення: 1 ключ: значення i: 9 ключ: значення c: 3 ключ: значення e: 5 ключ: значення f: 6 ключ: значення g: 7 

Як змінити елементи словника в Swift?

Ви можете додавати елементи словника за допомогою синтаксису підрядкових. Вам потрібно включити новий ключ як індекс індексу та призначити нове значення типу як у словнику.

Приклад 6: Встановлення елементів у словнику

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

Коли ви запускаєте програму, результат буде:

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

У наведеній вище програмі ми вказали значення Not Found у параметрі за замовчуванням під час доступу до словника. Якщо значення ключа не існує, повертається значення за замовчуванням, інакше значення повертається.

У нашому випадку ключа "Непал" немає, тому програма повертає Не знайдено .

Цікаві статті...