Cette fois, j'ai appris la déclaration de garde, donc je vais la sortir.
*** En un mot, l'instruction guard est une instruction de branche conditionnelle pour une sortie anticipée lorsque les conditions ne sont pas remplies. *** *** La méthode d'écriture de base est la suivante.
qiita.rbvar
garde expression conditionnelle else{
Instruction exécutée lorsque l'expression conditionnelle est fausse
Besoin de quitter la portée où la déclaration de garde est écrite
(Autrement dit, vous devez rédiger un retour)
}
qiita.rbvar
Regardons un exemple basique!
func someFunction(){
let value = 99
guard value >= 100 else{
print("Valeur inférieure à 100")//Exécuté car la valeur était inférieure à 100
return
}
someFunction()
Résultat d'exécution:Valeur inférieure à 100
Comme pour l'instruction guard, l'instruction guard-let peut être utilisée de la même manière que l'instruction if.
*** Vérifiez l'URL ci-dessous si vous souhaitez consulter la déclaration if! !! *** *** Qu'est-ce qu'une instruction if? ("Https://qiita.com/syunta061689/items/65d54a58936a5849a67a")
La différence avec l'instruction if-let est que les variables et les constantes déclarées dans l'instruction guard-let peuvent être utilisées après l'instruction *** guard-let. *** ***
L'exemple suivant accède à la constante int déclarée dans l'instruction guard-let.
qiita.rbvar
func someFunction(){
let a: Any = 1 //N'importe quel type
guard let int= a as? Int //Un abaissement peut-il être de type Int?
else{//Sinon, procédez comme suit
print("a n'est pas de type Int")
return
}
print("La valeur est de type Int\(int)est")//int peut être utilisé même après l'instruction de garde!
}
someFunction()
Résultat d'exécution:La valeur est 1 de type Int.
Maintenant, utilisons un exemple concret pour approfondir la façon de l'utiliser correctement avec l'instruction if. Dans l'exemple suivant, l'instruction if et l'instruction guard reçoivent deux types Int, renvoient la somme si elles ont les deux valeurs et renvoient nil si l'une ou l'autre n'a pas de valeur. Je vais.
*** Exemple d'énoncé if ***
qiita.rbvar
func add(_ optionalA: Int?,_ optionalB: Int?)-> Int?{
let a: Int
if let unwrappedA = optionalA{
a = unwrappedA
}else{
print("Il n'y a aucune valeur dans le premier argument")
return nil
}
let b: Int
if let unwrappedB = optionalB{
b = unwrappedB
}else{
print("Il n'y a aucune valeur dans le premier argument")
return nil
}
return a+b
}
add(optional(3)optional(2))//5
*** Exemple de déclaration de garde ***
qiita.rbvar
func add(_ optionalA: Int?, _ optionalB: Int?)-> Int?{
guard let a = optionalA else{
print("Il n'y a aucune valeur dans le premier argument")
return nil
}
guard let b = optionalB else{
print("Il n'y a aucune valeur dans le deuxième argument")
return nil
}
return a+b
}
add(Optional(3),Optional(2))//5
De cette façon, le code qui sort tôt en fonction des conditions est *** plus simple à implémenter en utilisant l'instruction de garde *** De plus, dans l'instruction de garde, si vous oubliez d'écrire le processus de sortie, une erreur se produira, vous pouvez donc éviter de simples erreurs!
Recommended Posts