let evenementHistorique = (1515, "Bataille de Marignan")

evenementHistorique est une constante de type (Int, String) qui a pour valeur 1515 et "Bataille de Marignan". Ce tuple regroupe une valeur de type Int et une valeur de type String. Il est donc bien de type (Int, String).

Vous pouvez créer des tuples en mélangeant n'importe quels types, et ils peuvent contenir autant de types différents que vous le souhaitez. Rien ne vous empêche d'avoir un tuple de type (Int, Int), ou (String, Bool).

Décomposer un tuple

Vous pouvez décomposer le contenu d'un tuple en plusieurs constantes ou variables séparées. Vous pourrez ensuite y accéder comme d'habitude :


let (annee, evenement) = evenementHistorique
print("A eu lieu en \(annee) ?")
// "A eu lieu en 1515 ?"
print("Réponse : \(evenement)")
// "Réponse : Bataille de Marignan"

Si vous n'avez besoin que de certaines valeurs du tuple, ignorez les valeurs inutiles avec un trait de soulignement _ (underscore) :


let (annee, _) = evenementHistorique
print("A eu lieu en \(annee) ?")
// "A eu lieu en 1515 ?"

Vous pouvez accéder aux valeurs de chaque élément d'un tuple grâce aux numéros d'index. Attention, la première valeur a pour index 0 et non pas 1. La deuxième valeur aura donc pour index 1, la troisième valeur aura pour index 2, et ainsi de suite.


print("Se déroule en \(evenementHistorique.0) ?")
// "Se déroule en 1515"
print("Réponse : \(evenementHistorique.1)")
// "Réponse : Bataille de Marignan"

Nommer les éléments d'un tuple

Vous pouvez nommer les éléments d'un tuple lorsque vous déclarez votre tuple. Cela vous permettra d'accéder à leur valeur plus facilement en rendant votre code plus compréhensif :


let evenementHistorique = (annee: 1515, evenement: "Bataille de Marignan")

Une fois nommé, vous pouvez utiliser le nom de ces éléments pour accéder à leurs valeurs :


print("Se déroule en \(evenementHistorique.annee)")
// "Se déroule en 1515"
print("Réponse : \(evenementHistorique.evenement)")
// "Réponse : Bataille de Marignan"

Les tuples sont très utiles comme retour de fonction, nous verrons leurs utilisations dans quelques chapitres. Retenez simplement que si les variables et les constantes peuvent stocker une valeur, les tuples permettent d'en stocker plusieurs.