Détails du sujet

Optionals, Tuples

Mémoriser les fonctions essentielles de concepts plus avancées et spécifiques au Swift que sont les Optionals et les Tuples.

Toutes les cartes

Qu'affiche le code suivant ?

print(Int("18"))

Optional(18)

La fonction Int() retourne un optional Int. La String passée en argument peut ne pas représenter un Int.


Comment tester si un optional comporte une valeur ou pas ?

if anOptional != nil {
// nous avons une valeur
print(anOptional!)
} else {
// pas de valeur
}

Optional Binding

let optionalInt : Int?

if let myNumber = optionalInt {
    print(myNumber)
} else {
    print("pas de valeur")
}

Tuples

Créer un tuple simple sans nom pour les valeurs.

let myTuple = ("John", 14)

Tuples

Créer un tuple avec des noms pour les variables.

let student = (name : "Jane", age : 18)

Tuples

Accéder aux valeurs d'un tuple par leur nom

let student = (name : "Jane", age : 18)
student.name // est "Jane"
student.age // est 18 

Tuples

Accéder aux valeurs d'un tuple sans leur nom

let student = (name : "Jane", age : 18)
student.0 // est "Jane"
student.1 // est 18

Tuples

Décomposer un tuple en variables

let student = ("Jane", 18)
let (myName, myAge) = student
// myName is "Jane"
// myAge is 18

Tuples

On utilise des Tuples pour les fonctions qui renvoient plusieurs variables.

Exemple :

func sinusAndCosinus(x : Double)->(sin : Double,  cos : Double) {
    return (sin(x), cos(x))
}
// sinusAndCosinus(0).sin is 0