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)