Collections
Collections
Collections est une leçon Swift Academy gratuite sur CoddyKit. Ceci est la leçon 1 sur 1. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Swift Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Swift Academy comprend 1 leçons au total.
Introduction
Bonjour,
Dans cette leçon, nous allons découvrir les types de collections dans Swift, qui constituent l'un des sujets les plus importants.
Commençons.
Swift possède 3 types de collections.
Tableau → Types de collections séquentielles.
Ensemble → Types de collections non ordonnées et uniques.
Dictionnaire → Types de collections non ordonnées organisées en paires clé-valeur.
Modifiable – immuable
Le fait que nos types de collections soient immuables ou modifiables dépend de leur définition.
Si nous les définissons avec une instruction let, ils seront immuables, tandis qu'ils seront modifiables si nous les définissons avec var.
Si la valeur définie ne doit pas changer par la suite, l'utilisation de let offrira au compilateur un avantage en matière de performances et lui permettra d'exécuter un code davantage optimisé.
Tableau
Tableau
Un tableau est un type de collection utilisé pour conserver les données dans un ordre séquentiel. Depuis la version 3 de Swift, tous les éléments d'un tableau ne sont pas obligés d'être du même type.
La syntaxe d'une définition simple de tableau est présentée dans notre exemple ci-dessous.
// Let's create an empty array.
var someInts = [Int]()
print("someInts is of type [Int] with \(someInts.count) items.")
// Prints "someInts is of type [Int] with 0 items."Créer un tableau avec une valeur par défaut
Créer un tableau avec une valeur par défaut
Dans certains cas, nous pouvons vouloir créer un tableau avec une valeur par défaut et une taille précise. Pour cela, nous devons transmettre deux arguments au constructeur de tableau.
Ces arguments indiquent quelle est la valeur par défaut et combien d'éléments le tableau contiendra.
var threeDoubles = Array(repeating: 0.0, count: 3)
print(threeDoubles)
// threeDoubles is of type [Double], and equals [0.0, 0.0, 0.0]
var anotherThreeDoubles = Array(repeating: 2.5, count: 3)
// anotherThreeDoubles is of type [Double], and equals [2.5, 2.5, 2.5]
print(anotherThreeDoubles)
var sixDoubles = threeDoubles + anotherThreeDoubles
print(sixDoubles)
// sixDoubles is inferred as [Double], and equals [0.0, 0.0, 0.0, 2.5, 2.5, 2.5]Créer un tableau à l'aide d'un littéral de tableau
Créer un tableau à l'aide d'un littéral de tableau
Dans notre exemple précédent, nous avons appris à créer un tableau vide. Cependant, dans certains cas, nous pouvons vouloir créer un tableau à l'aide d'un littéral de tableau.
Apprenons à l'utiliser avec cet exemple.
/*
We have defined a variable named catList,
and with the [String] statement we specified
that its type is an Array containing String elements.
*/
var catList: [String] = ["Garfield", "Tom"]
print(catList)
/*
It will understand that the array is an Array containing
String statements, since we assign a value that
defines the variable. (Swift type inference)
*/
var shoppingList = ["Eggs", "Milk"]
print(shoppingList)Accéder à la valeur d'un tableau
Accéder à la valeur d'un tableau
Lorsque nous voulons atteindre l'élément situé à un indice donné dans une séquence, il suffit de l'appeler avec la syntaxe suivante.
myArray [index]
Examinons l'exemple.
// We have defined an array with 3 elements of type Int.
var numbers:[Int] = [1, 5, 21]
// Arrays start from Index 0. For example, in order to reach the value 5, which is the 2nd element, we need to access the 1st index.
var a = numbers[1]
print( "Value of numbers at index 1 is \(a)" )Ajouter de nouveaux éléments à un tableau
Ajouter de nouveaux éléments à un tableau
Nous pouvons ajouter un nouvel élément à un tableau.
Dans l'exemple ci-dessous, un tableau nommé catList est défini. À l'étape suivante, un nouvel élément est ajouté à ce tableau à l'aide de la méthode append.
// The Array named catList was defined with 1 initial element.
var catList = ["Tom"]
/*
We are adding a new item with a Garfield
value using the append method.
*/
catList.append("Garfield")
// Our array will now have 2 elements.
/*
With the + = operator, we can do the
work that the append method does.
*/
catList += ["Sylvester"]
Ajouter des données à un indice précis du tableau
Ajouter des données à un indice précis du tableau
La valeur que j'ai ajoutée avec la méthode append dans notre exemple précédent sera ajoutée à la fin du tableau. Cependant, nous pouvons parfois vouloir l'ajouter à un indice précis. Nous utiliserons pour cela la méthode insert.
La syntaxe sera la suivante.
myArr.insert ("The data to add", at: index);
Découvrons cela avec un exemple.
var catList = ["Tom"]
catList.insert("Garfield", at: 1)
print(catList)
Supprimer un élément précis du tableau
Supprimer un élément précis du tableau
La méthode remove est utilisée pour supprimer l'élément situé à un indice donné dans un tableau.
var shoppingList = ["Apple", "Cherry", "Cheese"]
let shoppingListOne = shoppingList.remove(at: 0)
// the item that was at index 0 has just been removed
// the mapleSyrup constant is now equal to the removed "Maple Syrup" string
let shoppingListTwo = shoppingList.removeLast()
// the last item in the array has just been removed
print(shoppingListTwo)Itération d’un tableau
Nous pouvons parcourir un tableau avec la boucle for-in.
Examinons l’exemple.
var shoppingList = ["Banana", "Orange", "Milk"]
for item in shoppingList {
print(item)
}
// Six eggs
// Milk
// Flour
// Baking Powder
// Bananas
for (index, value) in shoppingList.enumerated() {
print("Item \(index + 1): \(value)")
}
// Item 1: Six eggs
// Item 2: Milk
// Item 3: Flour
// Item 4: Baking Powder
// Item 5: Bananas
Ensembles
Ensembles
Ils servent à regrouper des collections du même type sans ordre particulier.
Comme leur nom l’indique, ce sont des ensembles. Deux éléments ayant la même valeur ne peuvent pas se trouver dans un même ensemble.
Créer un ensemble vide
Nous utilisons l’exemple suivant pour créer un ensemble vide.
var catSet = Set<Character>()Créer des ensembles avec un littéral de tableau
Créer des ensembles avec un littéral de tableau
Un littéral de tableau peut servir à créer un ensemble. Notez que, bien que la valeur attribuée ressemble ici à un tableau, le type de la variable est Set <String>.
var favoriteGenres: Set<String> = ["Rock", "Classical", "Hip hop"]Avertissement
Avec un littéral de tableau, il est impossible de créer un ensemble sans définir son type. Cela peut être confondu avec un tableau. Nous devons donc définir le type.
Nous devons au moins l’utiliser comme suit.
var favoriteGenres: Set = ["Rock", "Classical", "Hip hop"]Méthodes des ensembles
Méthodes des ensembles
Examinons l’exemple.
var favoriteGenres = ["Funk"]
print("I have \(favoriteGenres.count) favorite music genres.")
if favoriteGenres.isEmpty {
print("favoriteGenres is empty")
} else {
print("I have particular music preferences.")
}
if favoriteGenres.contains("Funk") {
print("Funk")
} Parcourir l’ensemble
Parcourir l’ensemble
Le type Set de Swift n’est pas ordonné. Toutefois, la méthode sorted peut être utilisée lors du parcours de la valeur de l’ensemble. Cette méthode transforme les éléments de l’ensemble en tableau.
let favoriteGenres = ["Classical","Jazz", "Hip hop"]
for genre in favoriteGenres {
print("\(genre)")
}
// Classical
// Jazz
// Hip hopDictionnaire
Dictionnaire
Ce sont des types de collections qui stockent les valeurs du dictionnaire sous forme de paires clé-valeur et qui ne suivent aucun ordre.
Chaque valeur est associée à une clé unique. Celle-ci représente l’ID de cette valeur dans le dictionnaire. Le dictionnaire ne suit pas de séquence comme les tableaux. Nous pouvons le comparer à un dictionnaire du monde réel.
Ainsi, l’identité de chaque valeur est plus importante que son classement.
Le type Dictionary peut être défini à l’aide de la notation abrégée [Key: Value]. L’utilisation de cette notation est privilégiée.
var namesOfIntegers = [Int: String]()
// namesOfIntegers is an empty [Int: String] dictionary
namesOfIntegers[16] = "sixteen"
// namesOfIntegers now contains 1 key-value pair
namesOfIntegers = [:]
// namesOfIntegers is once again an empty dictionary of type [Int: String]Méthodes d’accès à un dictionnaire
Nous pouvons connaître le nombre d’éléments que contient un dictionnaire grâce à la méthode de comptage.
De plus, nous pouvons vérifier si le dictionnaire est vide avec la méthode isEmpty.
Faisons quelques exemples avec ces méthodes.
var airports = ["LHR": "London", "IST": "Istanbul"]
print("The airports dictionary contains \(airports.count) items.")
// Prints "The airports dictionary contains 2 items."
if airports.isEmpty {
print("The airports dictionary is empty.")
} else {
print("The airports dictionary is not empty.")
}
// Prints "The airports dictionary is not empty."
airports["LHR"] = "London"
// the airports dictionary now contains 3 itemsIndice
Pour récupérer une valeur à l’aide d’un indice, procédez comme suit. Le résultat renvoyé est optionnel.
var airports = ["DUB":"Dublin"]
if let airportName = airports["DUB"] {
print("The name of the airport is \(airportName).")
} else {
print("That airport is not in the airports dictionary.")
}
// Prints "The name of the airport is Dublin Airport."
//Deletion
airports["APL"] = nil
if let removedValue = airports.removeValue(forKey: "DUB") {
print("The removed airport's name is \(removedValue).")
} else {
print("The airports dictionary does not contain a value for DUB.")
}
// Prints "The removed airport's name is Dublin Airport."
Mettre à jour un dictionnaire
En plus d’utiliser l’indice présenté précédemment, il existe une méthode pour mettre à jour le dictionnaire.
Cette méthode a la particularité de renvoyer l’ancienne valeur, c’est-à-dire la valeur qui existait avant la mise à jour, une fois celle-ci effectuée.
var airports = ["DUB": "Dublin"]
if let oldValue = airports.updateValue("Dublin Airport", forKey: "DUB") {
print("The old value for DUB was \(oldValue).")
}
// Prints "The old value for DUB was Dublin."
Exemple de conversion d’un dictionnaire en tableau ci-dessous
Voici un exemple de conversion d’un dictionnaire en tableau.
let airports = ["IST":"Istanbul Airport", "DUB":"Dublin Airport"]
let airportCodes = [String](airports.keys)
print(airportCodes)
let airportNames = [String](airports.values)
print(airportNames)Félicitations
Félicitations 🎉
Dans cette leçon, nous avons appris à utiliser les collections dans Swift.
À bientôt dans la prochaine leçon.

Questions Fréquemment Posées
La leçon « Collections » est-elle gratuite ?
Oui — le texte complet de « Collections » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Swift Academy, passe à CoddyKit PRO. Le cours Swift Academy comprend 1 leçons au total.
Qu'est-ce que j'apprendrai dans « Collections » ?
Collections Tu pratiques Swift Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer Swift Academy ?
Aucune expérience préalable n'est requise. Swift Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 1 sur 1.
Combien de temps prend la leçon « Collections » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon Swift Academy ?
Oui. Chaque leçon Swift Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.