Swift - Options

Swift 4 introduit également Optionalstype, qui gère l'absence de valeur. Les options disent soit "il y a une valeur et elle est égale à x" ou "il n'y a pas de valeur du tout".

Un Optional est un type à part entière, en fait l'un des nouveaux enums super puissants de Swift 4. Il a deux valeurs possibles,None et Some(T), où T est une valeur associée du type de données correct disponible dans Swift 4.

Voici une déclaration facultative Integer -

var perhapsInt: Int?

Voici une déclaration de chaîne facultative -

var perhapsStr: String?

La déclaration ci-dessus équivaut à l'initialiser explicitement à nil ce qui signifie aucune valeur -

var perhapsStr: String? = nil

Prenons l'exemple suivant pour comprendre le fonctionnement des options dans Swift 4 -

var myString:String? = nil

if myString != nil {
   print(myString)
} else {
   print("myString has nil value")
}

Lorsque nous exécutons le programme ci-dessus en utilisant aire de jeux, nous obtenons le résultat suivant -

myString has nil value

Les options sont similaires à l'utilisation nil avec des pointeurs en Objective-C, mais ils fonctionnent pour n'importe quel type, pas seulement pour les classes.

Déballage forcé

Si vous avez défini une variable comme optional, puis pour obtenir la valeur de cette variable, vous devrez unwrapil. Cela signifie simplement mettre un point d'exclamation à la fin de la variable.

Prenons un exemple simple -

var myString:String?

myString = "Hello, Swift 4!"

if myString != nil {
   print(myString)
} else {
   print("myString has nil value")
}

Lorsque nous exécutons le programme ci-dessus en utilisant aire de jeux, nous obtenons le résultat suivant -

Optional("Hello, Swift 4!")

Maintenant, appliquons le déroulement pour obtenir la valeur correcte de la variable -

var myString:String?

myString = "Hello, Swift 4!"

if myString != nil {
   print( myString! )
} else {
   print("myString has nil value")
}

Lorsque nous exécutons le programme ci-dessus en utilisant Playground, nous obtenons le résultat suivant.

Hello, Swift 4!

Déballage automatique

Vous pouvez déclarer des variables facultatives en utilisant un point d'exclamation au lieu d'un point d'interrogation. Ces variables optionnelles se dérouleront automatiquement et vous n'avez pas besoin d'utiliser de point d'exclamation supplémentaire à la fin de la variable pour obtenir la valeur attribuée. Prenons un exemple simple -

var myString:String!
myString = "Hello, Swift 4!"

if myString != nil {
   print(myString)
} else {
   print("myString has nil value")
}

Lorsque nous exécutons le programme ci-dessus en utilisant aire de jeux, nous obtenons le résultat suivant -

Hello, Swift 4!

Reliure facultative

Utilisez une liaison facultative pour savoir si un élément facultatif contient une valeur et, le cas échéant, pour rendre cette valeur disponible en tant que constante ou variable temporaire.

Une reliure facultative pour le if la déclaration est la suivante -

if let constantName = someOptional {
   statements
}

Prenons un exemple simple pour comprendre l'utilisation de la liaison facultative -

var myString:String?
myString = "Hello, Swift 4!"

if let yourString = myString {
   print("Your string has - \(yourString)")
} else {
   print("Your string does not have a value")
}

Lorsque nous exécutons le programme ci-dessus en utilisant aire de jeux, nous obtenons le résultat suivant -

Your string has - Hello, Swift 4!