Maintenant que nous avons appris le type facultatif
*** Facultatif (enveloppé) En un mot, c'est un type qui représente une valeur ou un type vide. *** *** Fondamentalement, les variables et les constantes Swift n'autorisent pas nil, mais lors de l'utilisation de ce nil *** Utilisez le type facultatif (enveloppé)! ***
Par exemple
qiita.rbvar
1.var n: Int
2.
3.print(n)//Erreur
Comme mentionné ci-dessus, une erreur se produit si vous essayez de générer une valeur qui n'existe pas. C'est là que le type facultatif (enveloppé) entre en jeu.
qiita.rbvar
1.var n: Optional<Int>
2.
3.print(n)//nil
Comme mentionné ci-dessus, si vous utilisez le type facultatif (enveloppé), aucune erreur ne se produira et nil sera affiché.
De cette façon, une erreur se produit car le comportement est *** "Si vous encapsulez les données avec" Type facultatif "***, " nil " sera retourné si la valeur n'existe pas." Peut être évité. Il s'agit de l'utilisation de base de *** "Type facultatif" ***.
Le type facultatif (enveloppé) peut ne pas avoir de valeur, il ne peut donc pas être traité de la même manière qu'une variable ou constante de type enveloppé. Par exemple, Int? Quatre règles d'opérations de type à type entraîneront une erreur.
qiita.rbvar
1.let a: Int? = 1
2.let b: Int? = 1
3.a+b//Erreur
Déballez pour éviter cette erreur. Il existe trois façons de déballer.
○ *** Reliure facultative *** ○ ? ?? opérateur ○ *** Déballage forcé ***
Creusons profondément un par un!
qiita.rbvar
if let nom constant= Optional(Wrapped)Moule{
//Instruction exécutée si la valeur existe
}
Comme dans l'instruction ci-dessus, si vous utilisez une instruction if-let et que vous avez une valeur Wrapped, l'instruction {} sera exécutée. Dans l'exemple suivant, il y a une valeur dans la constante A, donc la valeur est affectée à la constante a de type String et l'instruction exécutable est exécutée!
qiita.rbvar
1.let A: Optional("1") //Type int
2.if let A {
print(type(of:1))
//Résultat d'exécution: Int
}
Dans l'exemple suivant,? ?? Type de chaîne avec la valeur de type chaîne "a" sur le côté gauche de l'opérateur? La valeur "b" du type String est spécifiée sur le côté droit de la constante optionalString de, et par conséquent, la valeur "a" sur le côté gauche est acquise.
qiita.rbvar
1.let optionalString:String? = "a"
2.if String = optionalString ?? "b"
//Résultat d'exécution a
Le dépliage forcé est une méthode d'extraction forcée de la valeur du type Wrapped du type Optional (Wrapped). Pour faire un déballage forcé! Utilisez l'opérateur. Dans ce qui précède, j'ai mentionné qu'il ne peut pas être traité de la même manière qu'une variable ou une constante de type Wrapped, mais qu'il peut être récupéré en utilisant le déballage forcé.
qiita.rbvar
let a : Int? = 1
let b : Int? = 1
a!+b! = //2
Recommended Posts