Szukaj…


Co to jest Bool?

Bool to typ boolowski z dwiema możliwymi wartościami: true i false .

let aTrueBool = true
let aFalseBool = false

Bole są używane w instrukcjach kontroli jako warunki. Instrukcja if używa warunku logicznego do określenia, który blok kodu ma zostać uruchomiony:

func test(_ someBoolean: Bool) {
    if someBoolean {
        print("IT'S TRUE!")
    }
    else {
        print("IT'S FALSE!")
    }
}
test(aTrueBool)  // prints "IT'S TRUE!"

Neguj Bool z prefiksem! operator

Prefiks ! operator zwraca logiczną negację swojego argumentu. Oznacza to, że !true zwraca false , a !false zwraca true .

print(!true)  // prints "false"
print(!false) // prints "true"

func test(_ someBoolean: Bool) {
    if !someBoolean {
        print("someBoolean is false")
    }
}

Logiczne operatory logiczne

Operator OR (||) zwraca true, jeśli jeden z dwóch operandów ma wartość true, w przeciwnym razie zwraca false. Na przykład poniższy kod ma wartość true, ponieważ co najmniej jedno z wyrażeń po obu stronach operatora OR jest prawdziwe:

if (10 < 20) || (20 < 10) {
    print("Expression is true")
}

Operator AND (&&) zwraca true tylko wtedy, gdy oba operandy uznają za prawdziwe. Poniższy przykład zwróci false, ponieważ tylko jedno z dwóch wyrażeń operandu ma wartość true:

if (10 < 20) && (20 < 10) {
    print("Expression is true")
}

Operator XOR (^) zwraca wartość true, jeśli jeden i tylko jeden z dwóch argumentów ma wartość true. Na przykład poniższy kod zwróci wartość true, ponieważ tylko jeden operator oceni, że jest prawdziwy:

if (10 < 20) ^ (20 < 10) {
    print("Expression is true")
}

Wartości logiczne i warunki warunkowe

Czystym sposobem radzenia sobie z wartościami logicznymi jest użycie wbudowanego warunku z a? b: c operator trójskładnikowy, który jest częścią podstawowych operacji Swift.

Warunek wbudowany składa się z 3 elementów:

question ? answerIfTrue : answerIfFalse

gdzie pytanie jest wartością logiczną, która jest analizowana, a answerIfTrue jest wartością zwracaną, jeśli pytanie jest prawdziwe, a answerIfFalse jest wartością zwracaną, jeśli pytanie jest fałszywe.

Powyższe wyrażenie jest takie samo jak:

if question {
    answerIfTrue
} else {
    answerIfFalse
}

W przypadku wbudowanych warunków warunkowych zwracana jest wartość oparta na wartości logicznej:

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'

Możesz także wywoływać metody oparte na wartości logicznej:

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'

Uwarunkowania wbudowane pozwalają na czystą jednoliniową ocenę logiczną



Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow