Swift-8-

Type Collection: Dictionary
Retour vers : Fonction
Introduction

La structure de données dans laquelle on groupe des éléments de même type se nomme, comme dans la plupart des langages de programmation « Array ». Cette collection de données est considérée comme une file séquentielle ou un vecteur suivant le terminologie définie dans la partie Algorithmique . Une autre structure de données que l’on appelle Table en langage algorithmique se nomme Dictionary en Swift.

Le terme Dictionary peut se traduire par dictionnaire, on lui préférera le terme Table que nous utilisons dans l’introduction à l’algorithmique. Chaque élément d’une table est composé de deux parties : le clé et la valeur de l’élément. La clé permet d’accéder à la valeur de l’élément. Il faut noter que la structure de données Dictionary n’accepte que des éléments de même type.

Declaration-Initialisation
var maTable : [ String : String ]

La variable maTable peut recevoir un ensemble d’élément dont la clé est de type String et la valeur est de type String. Pour utiliser la table définie ci-dessus nous devons toujours lui donner une valeur initiale soit par l’instruction suivante:

maTable  = [ String : String ]()  // maTable est une table initialisée vide

Soit en insérant un ou plusieurs élément

var maTable = [ 1 : "Pomme", 2 : "Poire" ] // maTable initialisée avec des éléments

Swift reconnait automatiquement le type des variables assignées lors de la déclaration (Swift inference). pour insérer un autre élément on écrit:

maTable [3] = "Prune"

Pour compter le nombre d’élément on se réfère à la fonction count comme pour un Array

print( maTable.count)
Accéder une élément

Pour accéder un élément on utilise la clé de cet élément

var unFruit = maTable[3]  // on extrait une "Prune"
print(unFruit)

Avant de vouloir lire un élément d’une table on peut tester si elle ne comporte aucun élément en utilisant le fonction isEmpty attachée au type Dictionary. Cette fonction retourne la valeur booléenne true si la table est vide, false sinon.

let vide = maTable.isEmpty
Supprimer un élément

Pour supprimer un élément on se réfère à la fonction removeValueForKey

maTable.removeValueForKey(2)
Remplacer un élément

Pour remplacer l’élément dont la clé est 2 par la valeur « Citron »

maTable [2] = "Citron"
Résumé
Array
var couleurs = ["rouge","bleu"]
var autresCouleurs: String[] = ["orange", "violet"]    // inference 
couleurs.append("vert")                                // [rouge, bleu, vert]
couleurs += "jaune"                                    // [rouge, bleu, vert, jaune]
couleurs += autresCouleurs                             // [rouge, bleu, vert, jaune, orange, violet]
var jours = ["lundi", "jeudi"]
var premierJour = jours[0]                             // lundi
jours.insert("mardi", atIndex: 1)                      // [lundi, mardi, jeudi]
jours[2] = "mercredi"                                  // [lundi, mardi, mercredi]
jours.removeAtIndex(0)                                 // [mardi, mercredi]

Dictionary
var cartes = ["Valet" : 11, "Roi" : 12, "Dame" : 13]
println(cartes)
cartes["As"] = 15
println(cartes)
cartes["As"] = 1
println(cartes)