Swift Language
Booleaner
Suche…
Was ist bool
Bool ist ein boolescher Typ mit zwei möglichen Werten: true
und false
.
let aTrueBool = true
let aFalseBool = false
Booler werden in Bedingungen für den Steuerfluss als Bedingungen verwendet. Die if
Anweisung verwendet eine boolesche Bedingung, um den auszuführenden Codeblock zu bestimmen:
func test(_ someBoolean: Bool) {
if someBoolean {
print("IT'S TRUE!")
}
else {
print("IT'S FALSE!")
}
}
test(aTrueBool) // prints "IT'S TRUE!"
Negiere einen Bool mit dem Präfix! Operator
Das Präfix !
Operator gibt die logische Negation seines Arguments zurück. Das heißt !true
gibt false
und !false
gibt true
.
print(!true) // prints "false"
print(!false) // prints "true"
func test(_ someBoolean: Bool) {
if !someBoolean {
print("someBoolean is false")
}
}
Boolesche logische Operatoren
Der Operator OR (||) gibt true zurück, wenn einer seiner beiden Operanden den Wert true ergibt, andernfalls wird false zurückgegeben. Der folgende Code wird beispielsweise als "true" ausgewertet, da mindestens einer der Ausdrücke auf beiden Seiten des OR-Operators "true" ist:
if (10 < 20) || (20 < 10) {
print("Expression is true")
}
Der Operator AND (&&) gibt nur dann true zurück, wenn beide Operanden den Wert true haben. Das folgende Beispiel gibt false zurück, da nur einer der beiden Operandenausdrücke als true ausgewertet wird:
if (10 < 20) && (20 < 10) {
print("Expression is true")
}
Der XOR (^) - Operator gibt "true" zurück, wenn einer der beiden Operanden den Wert "true" hat. Der folgende Code gibt beispielsweise true zurück, da nur ein Operator den Wert true ergibt:
if (10 < 20) ^ (20 < 10) {
print("Expression is true")
}
Booleans und Inline-Bedingungen
Eine saubere Methode zum Umgang mit Booleans ist die Verwendung einer Inline-Bedingung mit der a? b: c ternärer Operator, der zu Swifts Basisoperationen gehört .
Die Inline-Bedingung besteht aus 3 Komponenten:
question ? answerIfTrue : answerIfFalse
Dabei ist frage ein boolescher Wert, der ausgewertet wird, und answerIfTrue ist der Wert, wenn die Frage wahr ist, und answerIfFalse ist der Wert, der zurückgegeben wird, wenn die Frage falsch ist.
Der obige Ausdruck ist derselbe wie:
if question {
answerIfTrue
} else {
answerIfFalse
}
Bei Inline-Bedingungen geben Sie einen Wert zurück, der auf einem booleschen Wert basiert:
func isTurtle(_ value: Bool) {
let color = value ? "green" : "red"
print("The animal is \(color)")
}
isTurtle(true) // outputs 'The animal is green'
isTurtle(false) // outputs 'The animal is red'
Sie können auch Methoden aufrufen, die auf einem booleschen Wert basieren:
func actionDark() {
print("Welcome to the dark side")
}
func actionJedi() {
print("Welcome to the Jedi order")
}
func welcome(_ isJedi: Bool) {
isJedi ? actionJedi() : actionDark()
}
welcome(true) // outputs 'Welcome to the Jedi order'
welcome(false) // outputs 'Welcome to the dark side'
Inline-Bedingungen ermöglichen saubere boolesche Einzeiler-Auswertungen