[SWIFT] Comprenons la déclaration de garde!

Cette fois, j'ai appris la déclaration de garde, donc je vais la sortir.

Qu'est-ce qu'une déclaration de garde?

*** 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

Accès aux variables et constantes déclarées dans l'instruction de garde

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.

Utilisation correcte avec l'instruction if

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

Comprenons la déclaration de garde!
Comprenons la déclaration if!
Comprenons la déclaration for-in!
Comprenons l'instruction switch!
Comprenons la fonction!
Comprenons le type Array (Element)!
Comprenons le type facultatif (enveloppé)!
Comprenons la fermeture!
La déclaration While n'est-elle pas mauvaise?
Améliorons l'application
12 Correspond à l'instruction while
Essayons le tutoriel S2Struts (# 3_180425)
Comprendre la méthode d'assistance form_with
Essayons le tutoriel S2Struts (# 5_180526)
Essayons le tutoriel S2Struts (# 4_180505)
Essayons le tutoriel S2Struts (# 1_180423)
Résolvons le problème FizzBuzz!
Essayons le tutoriel S2Struts (# 2_180424)
Comprendre le mécanisme de base de log4j2.xml
[java8] Pour comprendre l'API Stream
Vérifions le filtre de recherche d'images
Essayons le tutoriel S2Struts (# 0_yymmdd)
Oui, prévisualisons l'image. ~ part5 ~
Traitement d'image: jouons avec l'image
Attaquons la vulnérabilité (2) Redirection ouverte