Les trois types de collection en Swift :
Collection | Mot-clé Swift | Logique de stockage |
---|---|---|
Tableau | Array | Une liste ordonnée numériquement |
Dictionnaire | Dictionary | Une liste ordonnée numériquement |
Ensemble | Set | Un ensemble de valeurs uniques non ordonnées |

Les tableaux sont des listes ordonnées numériquement. Concrètement ce sont des listes organisées par numéro. L'index commence toujours à 0 ! Donc le premier élément est à l'index 0, le 2e à l'index 1, le 3e à l'index 2 etc...
Le tableau est un type qui se note Array. Pour créer un tableau, il suffit d'utiliser les crochets : [] et de noter les éléments séparés par des virgules.
Un tableau qui contient des String ne peut pas ensuite contenir des Bool.
On doit toujours connaître le type stocké par le tableau. Du coup, un tableau ne peut contenir qu'un seul type ! Un Int, ne peut pas côtoyer un Float par exemple.
Si vous créez un tableau, un ensemble ou un dictionnaire et que vous l'assignez à une variable, la collection créée sera modifiable. Si vous affectez un tableau, un ensemble ou un dictionnaire à une constante, cette collection est immuable et sa taille et son contenu ne peuvent pas être modifiés.
Un tableau stocke des valeurs du même type dans une liste ordonnée. La même valeur peut apparaître dans un tableau plusieurs fois à différentes positions.
Création d'un tableau
var someInts: [Int] = []
print("someInts est de type [Int] avec \(someInts.count) items.")
// Cela va afficher : "someInts est de type [Int] avec 0 items."
someInts.append(3)
// On lui ajoute un [Int], en l'occurence le chiffre 3
// Maintenant, someInts contient 1 item de type [Int]
someInts = []
// someInts est désormais un array vide,
// mais il est TOUJOURS de type [Int]
Création d'un tableau avec une valeur par défaut
let nbrPair: [Int] = [0,2,4,6,8]
let nbrImpair = [1,3,5,7,9]
// Le type [Int] est déduit automatiquement
let couleur: [String] = ["vert", "orange", "bleu"]
let salutation = ["bonjour", "salut", "ciao"]
// Le type [String] est déduit automatiquement
Le type Array de Swift fournit également un initialiseur pour créer un tableau d'une certaine taille avec toutes ses valeurs définies sur la même valeur par défaut.
var threeDoubles = Array(repeating: 0.0, count: 3)
// threeDoubles est de type [Double], et équivaut à : [0.0, 0.0, 0.0]
Concaténation de tableaux du même type
var anotherThreeDoubles = Array(repeating: 2.5, count: 3)
var sixDoubles = threeDoubles + anotherThreeDoubles
// sixDoubles est de type [Double]
// et il a pour valeur : [0.0, 0.0, 0.0, 2.5, 2.5, 2.5]
Déclarer le type d'un array
var shoppingList: [String] = ["Oeuf", "Lait"]
var shoppingList = ["Oeuf", "Lait"]. // Plus rapide
Étant donné que toutes les valeurs du tableau sont du même type, Swift peut en déduire que [String] est le type correct à utiliser pour la variable shoppingList.
Accès et modification d'un tableau
// On déclare un tableau avec deux valeurs
var shoppingList = ["Oeuf", "Lait"]
Compter le nombre d'élément
// Utiliser la propriété count pour compter le nombre d'élément d'un tableau ou array
shoppingList.count
// Utiliser la propriété isEmpty pour vérifier si le tableau ou array est vide
if shoppingList.isEmpty {
print("Le tableau est vide")
}
Ajouter un élément
// Utiliser la méthode append(_:) pour ajouter un élément à la fin du tableau
shoppingList.append("Farine")
// Le tableau shoppingList a 3 éléments
// Le tableau shoppingList a pour valeur : ["Oeuf", "Lait", "Farine"]
// On peut ajouter plusieurs éléments à un tableau ou array grâce à l'opérateur +=
shoppingList += ["Sucre", "Beurre", "Crème"]
// Le tableau shoppingList a 6 éléments
// Le tableau shoppingList a pour valeur : ["Oeuf", "Lait", "Farine", "Sucre", "Beurre", "Crème"]
Récupérer et modifier la valeur d'un élément
// Pour récupérer une valeur du tableau, utilisez la syntaxe d'indice
// Index de la valeur que vous souhaitez récupérer entre crochets juste après le nom du tableau :
var firstItem = shoppingList[0] // Oeuf
// Pour modifier une valeur du tableau, utilisez également la syntaxe d'indice
shoppingList[0] = "Eau"
// Désormais, l'élément 0 a pour valeur Eau
// Utiliser les opérateurs de plage pour modifier plusieurs éléments
shoppingList[3...5] = ["Banane", "Pomme"]
// Remplace les éléments 3,4 et 5
// Le tableau shoppingList a 5 éléments
// Le tableau shoppingList a pour valeur : ["Eau", "Lait", "Farine", "Banane", "Pomme"]
Insérer un élément en première position
// Pour insérer un élément en première position, utilisez la méthode insert(_:at:)
shoppingList.insert("Salade", at: 0)
// Le tableau shoppingList a 6 éléments
// Le tableau shoppingList a pour valeur : ["Salade", "Eau", "Lait", "Farine", "Banane", "Pomme"]
Supprimer un élément
// Pour supprimer un élément du tableau, utilisez la syntaxe d'indice
let retireSirop = shoppingList.remove(at: 0)
// Supprime la position 0 : "Salade"
// Pour supprimer la dernière position, utilisez la méthode (at:)
shoppingList.removeLast()
// Le tableau shoppingList a 4 éléments
// Le tableau shoppingList a pour valeur : ["Eau", "Lait", "Farine", "Banane"]
Parcourir un tableau
for item in shoppingList {
print(item)
}
// Parcours les items du tableau en les affichant :
// Eau
// Lait
// Farine
// ...
Pour chaque élément du tableau, la méthode enumerated() renvoie un tuple composé d'un entier et de l'élément :
for (index, value) in shoppingList.enumerated() {
print("Item \(index + 1): \(value)")
}
// Parcours les items du tableau en les affichant :
// Item 1: Eau
// Item 2: Lait
// item 3 : Farine
// ...