English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
在本教程中,您将了解什么是字典,如何创建字典以及字典中的一些常见操作。
在上一篇文章中,Swift 数组文章中,我们学习了如何在变量/常量中存储多个值。在本文中,我们将讨论如何将数据/值存储为键值对。
字典只是一个容器,可以无序地将多个数据作为键值对保存。
每个值都与一个唯一键相关联,并将数据存储在无序列表中作为集合也就是说,您获取元素的顺序与您在字典中定义项目的顺序不同。
当您需要在集合中查找具有某个标识符的值时,可以使用字典而不是数组。 假设你想搜索一下这个国家的首府。 在这种情况下,您将创建一个具有国家和首都城市键值对的字典。 现在,您可以通过搜索键:国家,从集合中获得值:首都。
简单来说,您将键与值配对。在上面的示例中,我们将一个国家与其首都配对。
您可以通过在方括号[]中指定key:value数据类型来创建空字典。
let emptyDic: [Int: String] = [:] print(emptyDic)
运行该程序时,输出为:
[:]oppure
还可以如下定义一个空字典:
let emptyDic: Dictionary<Int, String> = [:] print(emptyDic)
Nel programma sopra, abbiamo dichiarato una costante di tipo dictionary chiamata emptyDic con key di tipo Int e value di tipo String, e l'abbiamo inizializzata con un valore 0.
oppure
Poiché Swift è un linguaggio di inferenza del tipo, è possibile creare una mappa direttamente senza specificare il tipo di dati, ma è necessario inizializzarla con alcuni valori in modo che il compilatore possa inferirne:
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, "h": 8]
Nel programma sopra, abbiamo dichiarato una mappa ma non l'abbiamo definita esplicitamente con un tipo, ma l'abbiamo inizializzata con alcuni elementi di default.
Gli elementi si trovano in coppie key:value, dove il tipo di key è String e il tipo di value è Int. Poiché la mappa non è una lista ordinata, print(someDic) esce i valori in un ordine diverso da quello definito.
Possiamo anche creare una mappa utilizzando un array.
let customKeys = ["Facebook", "Google", "Amazon"] let customValues = ["Mark", "Larry", "Jeff"] let newDictionary = Dictionary(uniqueKeysWithValues: zip(customKeys,customValues)) print(newDictionary)
运行该程序时,输出为:
["Amazon": "Jeff", "Google": "Larry", "Facebook": "Mark"]
Nel programma sopra, zip(customKeys,customValues) crea una nuova sequenza di tuple, ognuna delle quali rappresenta un valore proveniente da customKeys e customValues.
Ora, possiamo passare questa sequenza a Dictionary(Unique eKeysWithValues:) per impostare il valore iniziale e creare una nuova mappa. Pertanto, print(NewDictionary) produce una nuova mappa che contiene gli elementi di due array.
Come array, è possibile accedere agli elementi della mappa utilizzando la sintassi degli indici. È necessario includere nel parentesi quadre che seguono il nome della mappa la chiave da accedere.
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"])
运行该程序时,输出为:
Optional(1) Optional(8)
Puoi anche accedere agli elementi del dizionario utilizzando il ciclo 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)") }
运行该程序时,输出为:
key:b value:2 key:a value:1 key:i value:9 key:c value:3 key:e value:5 key:f value:6 key:g value:7
Puoi aggiungere elementi nel dizionario utilizzando la sintassi degli indici. Devi includere Nuova chiave Come indicatore di posizione, assegna un nuovo valore al tipo Dictionary.
varsomeDictionary=["Nepal":"Kathmandu","China":"Beijing","India":"NewDelhi"] someDictionary["Japan"] = "Tokyo" print(someDictionary)
运行该程序时,输出为:
["Japan": "Tokyo", "China": "Beijing", "India": "NewDelhi", "Nepal": "Kathmandu"]
Nell'esempio sopra, abbiamo utilizzato la sintassi degli indici per creare una nuova coppia di chiave-valore "Japan": "Tokyo" nel dizionario dato.
Puoi anche utilizzare la sintassi degli indici per modificare il valore associato a una chiave specifica:
varsomeDictionary=["Nepal":"Kathmandu","China":"Beijing","India":"NewDelhi"] someDictionary["Nepal"] = "KATHMANDU" print(someDictionary)
运行该程序时,输出为:
["China": "Beijing", "India": "NewDelhi", "Nepal": "KATHMANDU"]
Questa proprietà determina se il dizionario è vuoto. Se il dizionario non contiene alcun valore, restituisce true, altrimenti restituisce false.
let someDictionary = ["Nepal":"Kathmandu", "China":"Beijing", "India":"NewDelhi"] print(someDictionary.isEmpty)
运行该程序时,输出为:
false
Questa proprietà serve per accedere all'elemento primo del dizionario.
let someDictionary = ["Nepal":"Kathmandu", "China":"Beijing", "India":"NewDelhi"] print(someDictionary.first)
运行该程序时,输出为:
Optional((key: "China", value: "Beijing"))
Questa proprietà restituisce il numero totale di elementi (chiave/valore) nel dizionario.
let someDictionary = ["Nepal":"Kathmandu", "China":"Beijing", "India":"NewDelhi"] print(someDictionary.count)
运行该程序时,输出为:
3
Questa proprietà restituisce tutte le chiavi del dizionario.
varsomeDictionary=["Nepal":"Kathmandu","China":"Beijing","India":"NewDelhi"] let dictKeys = Array(someDictionary.keys) print(dictKeys)
运行该程序时,输出为:
["China", "India", "Nepal"]
Analogamente, è possibile utilizzare values proprietà per ottenere tutti i valori del dizionario.
Questa funzione viene utilizzata per eliminare e restituire il valore specificato dalla chiave dal dizionario. Questi due elementi chiave/valore saranno eliminati dal dizionario.
varsomeDictionary=["Nepal":"Kathmandu","China":"Beijing","India":"NewDelhi"] let val = someDictionary.removeValue(forKey: "Nepal") print(val) print(someDictionary)
运行该程序时,输出为:
Optional("Kathmandu") ["India": "NewDelhi", "China": "Beijing"]
Analogamente, è possibile utilizzare removeAll La funzione svuota il dizionario.
1.Quando si accede agli elementi di un dizionario utilizzando la sintassi degli indici in Swift, è necessario assicurarsi che la chiave sia presente nell'indice, altrimenti si otterrànilvalore. Vediamo un esempio:
varsomeDictionary=["Nepal":"Kathmandu","China":"Beijing","India":"NewDelhi"] let val = someDictionary["Giappone"] print(val)
运行该程序时,输出为:
nil
Nella procedura sopra riportata, non esiste una chiave Giappone . Pertanto, quando si tenta di accedere alla chiave "Giappone ” otterrà un valore nil.
2.Analogamente, le chiavi e i valori sono distinguibili per caso in Swift, quindi è necessario assicurarsi di utilizzare la chiave/valore con la corretta minuscolizzazione. Altrimenti, si otterrà un valore nil. Vediamo un esempio:
varsomeDictionary=["Nepal":"Kathmandu","China":"Beijing","India":"NewDelhi"] let val = someDictionary["nepal"] print(val)
运行该程序时,输出为:
nil
Nella procedura sopra riportata, non esiste la chiave "nepal". Pertanto, quando si tenta di accedere alla chiave "nepal", si ottiene un valore nil.
3.如果给定键的值不存在,则还有一种方法可以提供默认值。让我们在示例中看一下:
varsomeDictionary=["Nepal":"Kathmandu","China":"Beijing","India":"NewDelhi"] letval=someDictionary["nepal",default:"Not Found"] print(val)
运行该程序时,输出为:
未找到
在上述程序中,我们在访问字典时在默认参数中指定了一个默认值。如果键的值不存在,则返回默认值,否则返回该值
在我们的实例中,键“nepal”不存在,因此程序返回默认值: 未找到。