Dictionnaire rapide


Le dictionnaire Swift est utilisé pour stocker des collections non ordonnées de données du même type. Le dictionnaire Swift détectera avec force le type d'éléments et signalera une erreur si les types sont différents.

Chaque valeur du dictionnaire Swift est associée à une clé unique, et la clé sert d'identifiant des données de valeur dans le dictionnaire.

Contrairement aux éléments de données du tableau, les éléments de données du dictionnaire n'ont pas d'ordre spécifique. Nous utilisons des dictionnaires lorsque nous avons besoin d'accéder à des données via des identifiants (clés). Cette méthode est en grande partie la même que la façon dont nous utilisons des dictionnaires pour rechercher la signification des mots dans le monde réel.

Les clés du dictionnaire Swift peuvent être des entiers ou des chaînes sans aucune restriction de type, mais elles doivent être uniques.

Si vous créez un dictionnaire et l'attribuez à une variable, le dictionnaire créé peut être modifié. Cela signifie qu'après la création d'un dictionnaire, les éléments du dictionnaire peuvent être modifiés en ajoutant, supprimant ou modifiant. Si vous affectez un dictionnaire à une constante, le dictionnaire ne peut pas être modifié, et ni la taille ni le contenu du dictionnaire ne peuvent être modifiés.


Créer un dictionnaire

Nous pouvons utiliser la syntaxe suivante pour créer un dictionnaire vide d'un type spécifique :

var someDict =  [KeyType: ValueType]()

Ce qui suit consiste à créer un dictionnaire vide avec des clés de type Int , la syntaxe simple du type valeur est String :

var someDict = [Int: String]()

Voici un exemple de création d'un dictionnaire :

var someDict:[Int:String] = [1:"One", 2:"Two", 3:"Three"]

Accès au dictionnaire

On peut en fonction de l'index du dictionnaire Pour accéder aux éléments du tableau, la syntaxe est la suivante :

var someVar = someDict[key]

On peut apprendre à créer, initialiser et accéder au dictionnaire à travers les exemples suivants :

import Cocoa

var someDict:[Int:String] = [1:"One", 2:"Two", 3:"Three"]

var someVar = someDict[1]

print( "key = 1 的值为 \(someVar)" )
print( "key = 2 的值为 \(someDict[2])" )
print( "key = 3 的值为 \(someDict[3])" )

Le résultat de sortie de l'exécution du programme ci-dessus est :

key = 1 的值为 Optional("One")
key = 2 的值为 Optional("Two")
key = 3 的值为 Optional("Three")

Modifier le dictionnaire

Nous pouvons utiliser updateValue(forKey:) pour ajouter ou mettre à jour le contenu du dictionnaire. Si la clé n'existe pas, ajoutez la valeur. Si elle existe, modifiez la valeur correspondant à la clé. La méthode updateValue(_:forKey:) renvoie la valeur facultative. Un exemple est le suivant :

import Cocoa

var someDict:[Int:String] = [1:"One", 2:"Two", 3:"Three"]

var oldVal = someDict.updateValue("One 新的值", forKey: 1)

var someVar = someDict[1]

print( "key = 1 旧的值 \(oldVal)" )
print( "key = 1 的值为 \(someVar)" )
print( "key = 2 的值为 \(someDict[2])" )
print( "key = 3 的值为 \(someDict[3])" )

Le résultat de l'exécution du programme ci-dessus est :

key = 1 旧的值 Optional("One")
key = 1 的值为 Optional("One 新的值")
key = 2 的值为 Optional("Two")
key = 3 的值为 Optional("Three")

Vous pouvez également modifier la valeur du dictionnaire en spécifiant la clé, comme indiqué ci-dessous :

import Cocoa

var someDict:[Int:String] = [1:"One", 2:"Two", 3:"Three"]

var oldVal = someDict[1]
someDict[1] = "One 新的值"
var someVar = someDict[1]

print( "key = 1 旧的值 \(oldVal)" )
print( "key = 1 的值为 \(someVar)" )
print( "key = 2 的值为 \(someDict[2])" )
print( "key = 3 的值为 \(someDict[3])" )

Le programme ci-dessus Le résultat de l'exécution est :

key = 1 旧的值 Optional("One")
key = 1 的值为 Optional("One 新的值")
key = 2 的值为 Optional("Two")
key = 3 的值为 Optional("Three")

Supprimer la paire clé-valeur

Nous pouvons utiliser la méthode removeValueForKey() pour supprimer le paire clé-valeur de dictionnaire. Cette méthode renvoie la valeur supprimée si la clé existe, ou nil si elle n'existe pas. Un exemple est le suivant :

import Cocoa

var someDict:[Int:String] = [1:"One", 2:"Two", 3:"Three"]

var removedValue = someDict.removeValueForKey(2)

print( "key = 1 的值为 \(someDict[1])" )
print( "key = 2 的值为 \(someDict[2])" )
print( "key = 3 的值为 \(someDict[3])" )

Le résultat de l'exécution du programme ci-dessus est :

key = 1 的值为 Optional("One")
key = 2 的值为 nil
key = 3 的值为 Optional("Three")

Vous pouvez également supprimer les paires clé-valeur (clé-valeur) en spécifiant la valeur de la clé comme nulle. . L'exemple est le suivant :

import Cocoa

var someDict:[Int:String] = [1:"One", 2:"Two", 3:"Three"]

someDict[2] = nil

print( "key = 1 的值为 \(someDict[1])" )
print( "key = 2 的值为 \(someDict[2])" )
print( "key = 3 的值为 \(someDict[3])" )

Le résultat de sortie de l'exécution du programme ci-dessus est :

key = 1 的值为 Optional("One")
key = 2 的值为 nil
key = 3 的值为 Optional("Three")

Parcours du dictionnaire

On peut utiliser le <🎜 Boucle >for-in pour parcourir les paires clé-valeur dans un dictionnaire. Un exemple est le suivant :

import Cocoa

var someDict:[Int:String] = [1:"One", 2:"Two", 3:"Three"]

for (key, value) in someDict {
   print("字典 key \(key) -  字典 value \(value)")
}

Le résultat de l'exécution du programme ci-dessus est :

字典 key 2 -  字典 value Two
字典 key 3 -  字典 value Three
字典 key 1 -  字典 value One

Nous pouvons également utiliser la méthode enumerate() pour effectuer une traversée du dictionnaire, qui renvoie l'index du dictionnaire et ( key, value) paire, l'exemple est le suivant :

import Cocoa

var someDict:[Int:String] = [1:"One", 2:"Two", 3:"Three"]

for (key, value) in someDict.enumerate() {
    print("字典 key \(key) -  字典 (key, value) 对 \(value)")
}

Le résultat de l'exécution du programme ci-dessus est :

字典 key 0 -  字典 (key, value) 对 (2, "Two")
字典 key 1 -  字典 (key, value) 对 (3, "Three")
字典 key 2 -  字典 (key, value) 对 (1, "One")


Le dictionnaire est converti en tableau

Vous pouvez extraire la valeur-clé du dictionnaire Oui et la convertir en un tableau séparé. L'exemple est le suivant :

import Cocoa

var someDict:[Int:String] = [1:"One", 2:"Two", 3:"Three"]

let dictKeys = [Int](someDict.keys)
let dictValues = [String](someDict.values)

print("输出字典的键(key)")

for (key) in dictKeys {
    print("\(key)")
}

print("输出字典的值(value)")

for (value) in dictValues {
    print("\(value)")
}

Le résultat de sortie de l'exécution du programme ci-dessus est :

输出字典的键(key)
2
3
1
输出字典的值(value)
Two
Three
One

attribut count

Nous pouvons utiliser l'attribut count en lecture seule pour compter le nombre de paires clé-valeur du dictionnaire :

import Cocoa

var someDict1:[Int:String] = [1:"One", 2:"Two", 3:"Three"]
var someDict2:[Int:String] = [4:"Four", 5:"Five"]

print("someDict1 含有 \(someDict1.count) 个键值对")
print("someDict2 含有 \(someDict2.count) 个键值对")

Le sortie d'exécution du programme ci-dessus Le résultat est :

someDict1 含有 3 个键值对
someDict2 含有 2 个键值对

attribut isEmpty

Y Nous pouvons utiliser l'attribut en lecture seule isEmpty pour déterminer si le dictionnaire est vide et renvoie une valeur booléenne :

import Cocoa

var someDict1:[Int:String] = [1:"One", 2:"Two", 3:"Three"]
var someDict2:[Int:String] = [4:"Four", 5:"Five"]
var someDict3:[Int:String] = [Int:String]()

print("someDict1 = \(someDict1.isEmpty)")
print("someDict2 = \(someDict2.isEmpty)")
print("someDict3 = \(someDict3.isEmpty)")

Le résultat de sortie de l'exécution du programme ci-dessus est :

someDict1 = false
someDict2 = false
someDict3 = true