Manchmal möchte man Code nur dann ausführen, wenn eine bestimmte Bedingung erfüllt ist und in Swift ist dies vorwiegend durch if
- und else
-Statements repräsentiert. Man übergibt Swift eine Bedingung, die überprüft werden soll, dann einen Code-Block, der ausgeführt wird, wenn diese Bedingung erfüllt ist.
Optional kann man auch else
schreiben und einen Code-Block übergeben, der ausgeführt wird, falls die Bedingung nicht erfüllt wird, oder sogar else if
und noch mehr Bedinungen abdecken. Ein Code-"Block" ist dabei ein Stück Code, welcher mit einer offenen, geschweiften Klammer - {
- am Anfang und einer geschlossenen, geschweiften Klammer - }
- am Ende markiert ist.
Hier ein einfaches Beispiel:
var action: String
var person = "hater"
if person == "hater" {
action = "hate"
}
Dies benutzt den ==
(Gleichheits-)Operator, den wir schon kennen, um zu schauen, ob der String in person
exakt mit dem String "hater" übereinstimmt. Wenn dem so ist, setzt dies die action
-Variable auf "hate". Bitte beachte die offenen und geschlossenen Klammern - gerne auch mal weniger technisch als "curly brackets" bezeichnet - welche den Anfang und das Ende des Codes markieren, welcher ausgeführt wird, wenn die Bedingung wahr ist.
Lass uns else if
- und else
-Blöcke hinzufügen:
var action: String
var person = "hater"
if person == "hater" {
action = "hate"
} else if person == "player" {
action = "play"
} else {
action = "cruise"
}
Dies wird jede Bedingung nacheinander überprüfen und nur einer der Blöcke wird ausgeführt: Eine Person ist entweder ein Hater, ein Player oder irgendwas anderes.
Du kannst Swift jede Anzahl an Bedingungen prüfen lassen, die Du möchtest, aber alle müssen wahr sein, damit Swift den Code-Block ausführt. Um mehrere Bedingungen zu prüfen, benutze den &&
-Operator - er bedeutet "und". Als Beispiel:
var action: String
var stayOutTooLate = true
var nothingInBrain = true
if stayOutTooLate && nothingInBrain {
action = "cruise"
}
Weil stayOutTooLate
und nothingInBrain
beide wahr sind, ist die ganze Bedingung war und action
wird auf "cruise" gesetzt. Swift benutzt etwas, das man "short-circuit evaluation" nennt, um die Performance zu erhöhen: Wenn es mehrere Dinge überprüft, die wahr sein sollen und das erste davon ist falsch, wird es den Rest nicht mehr auswerten.
Dies mag jetzt sehr philosophisch klingen, aber ist sehr wichtig: Manchmal ist es wichtig, zu schauen, ob eine Bedinung nicht wahr ist, also falsch. Du kannst dies mit dem !
(Nicht-)Operator erreichen, welcher schon an einer frühen Stelle vorgestellt wurde. Als Beispiel:
if !stayOutTooLate && !nothingInBrain {
action = "cruise"
}
Dieses mal wird die action
-Variable nur gesetzt, wenn stayOutTooLate
und nothingInBrain
beide falsch sind - das !
hat die beiden Werte umgedreht.
SPONSORED Take the pain out of configuring and testing your paywalls. RevenueCat's all new Paywall Editor allow you to remotely configure your paywall view without any code changes or app updates.
Sponsor Hacking with Swift and reach the world's largest Swift community!
Link copied to your pasteboard.