Поиск…


Что такое Bool?

Bool - это логический тип с двумя возможными значениями: true и false .

let aTrueBool = true
let aFalseBool = false

Bools используются в операциях управления потоком как условия. Оператор if использует логическое условие для определения того, какой блок кода запускать:

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

Отмените Bool с помощью префикса! оператор

Префикс ! оператор возвращает логическое отрицание своего аргумента. То есть, !true возвращает false , а !false возвращает true .

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

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

Логические логические операторы

Оператор OR (||) возвращает true, если один из двух операндов имеет значение true, иначе он возвращает false. Например, следующий код оценивается как истинный, поскольку по крайней мере одно из выражений с обеих сторон оператора OR равно true:

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

Оператор AND (&&) возвращает true, только если оба операнда оцениваются как истинные. Следующий пример вернет false, потому что только одно из двух выражений операнда принимает значение true:

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

Оператор XOR (^) возвращает true, если один и только один из двух операндов оценивается как true. Например, следующий код вернет true, поскольку только один оператор имеет значение true:

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

Булевы и встроенные условия

Чистый способ обработки булевых строк - использовать inline-условие с a? b: c тройной оператор, который является частью основных операций Swift.

Введенное условие состоит из трех компонентов:

question ? answerIfTrue : answerIfFalse

где question - это логическое значение, которое вычисляется, и answerIfTrue - это значение, возвращаемое, если вопрос верен, а answerIfFalse - это значение, возвращаемое, если вопрос неверен.

Вышеприведенное выражение такое же, как:

if question {
    answerIfTrue
} else {
    answerIfFalse
}

С встроенными условными выражениями вы возвращаете значение на основе логического:

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'

Вы также можете вызывать методы на основе логического значения:

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'

Внутренние условные обозначения позволяют выполнять чистое однострочное вычисление булевых оценок



Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow