Dieses Mal habe ich von der Guard-Anweisung erfahren und werde sie ausgeben.
*** Mit einem Wort, die Guard-Anweisung ist eine bedingte Verzweigungsanweisung für ein vorzeitiges Beenden, wenn die Bedingung nicht erfüllt ist. *** *** Die grundlegende Schreibmethode ist wie folgt.
qiita.rbvar
Wache bedingter Ausdruck sonst{
Anweisung, die ausgeführt wird, wenn der bedingte Ausdruck falsch ist
Sie müssen den Bereich verlassen, in dem die Schutzerklärung geschrieben ist
(Das heißt, Sie müssen eine Rücksendung schreiben)
}
qiita.rbvar
Schauen wir uns ein einfaches Beispiel an!
func someFunction(){
let value = 99
guard value >= 100 else{
print("Wert kleiner als 100")//Wird ausgeführt, weil der Wert weniger als 100 betrug
return
}
someFunction()
Ausführungsergebnis:Wert kleiner als 100
Für die Guard-Anweisung kann die Guard-Let-Anweisung auf dieselbe Weise wie die if-Anweisung verwendet werden.
*** Überprüfen Sie die URL unten, wenn Sie die if-Anweisung überprüfen möchten! !! *** *** Was ist eine if-Anweisung? ("Https://qiita.com/syunta061689/items/65d54a58936a5849a67a")
Der Unterschied zur if-let-Anweisung besteht darin, dass die in der guard-let-Anweisung deklarierten Variablen und Konstanten nach der *** guard-let-Anweisung verwendet werden können. *** ***
Das folgende Beispiel greift auf die in der guard-let-Anweisung deklarierte Konstante int zu.
qiita.rbvar
func someFunction(){
let a: Any = 1 //Jeder Typ
guard let int= a as? Int //Kann ein auf Int-Typ herabgestuft werden?
else{//Wenn nicht, gehen Sie wie folgt vor
print("a ist kein Int-Typ")
return
}
print("Der Wert ist vom Typ Int\(int)ist")//int kann auch nach der Guard-Anweisung verwendet werden!
}
someFunction()
Ausführungsergebnis:Der Wert ist 1 vom Typ Int.
Lassen Sie uns nun ein konkretes Beispiel verwenden, um genauer zu untersuchen, wie es mit der if-Anweisung richtig verwendet wird. Im folgenden Beispiel erhalten die if-Anweisung und die guard-Anweisung zwei Int-Typen, geben die Summe zurück, wenn beide Werte vorhanden sind, und geben nil zurück, wenn einer der beiden Werte keinen Wert hat. Ich werde.
*** Beispiel einer if-Anweisung ***
qiita.rbvar
func add(_ optionalA: Int?,_ optionalB: Int?)-> Int?{
let a: Int
if let unwrappedA = optionalA{
a = unwrappedA
}else{
print("Das erste Argument enthält keinen Wert")
return nil
}
let b: Int
if let unwrappedB = optionalB{
b = unwrappedB
}else{
print("Das erste Argument enthält keinen Wert")
return nil
}
return a+b
}
add(optional(3)optional(2))//5
*** Beispiel einer Wachaussage ***
qiita.rbvar
func add(_ optionalA: Int?, _ optionalB: Int?)-> Int?{
guard let a = optionalA else{
print("Das erste Argument enthält keinen Wert")
return nil
}
guard let b = optionalB else{
print("Das zweite Argument enthält keinen Wert")
return nil
}
return a+b
}
add(Optional(3),Optional(2))//5
Auf diese Weise ist Code, der abhängig von den Bedingungen vorzeitig beendet wird, *** einfacher mit der Guard-Anweisung zu implementieren *** Wenn Sie in der Guard-Anweisung vergessen, den Exit-Prozess zu schreiben, tritt ein Fehler auf, sodass Sie einfache Fehler vermeiden können!
Recommended Posts