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



Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow