Recherche…


Qu'est-ce que Bool?

Bool est un type booléen avec deux valeurs possibles: true et false .

let aTrueBool = true
let aFalseBool = false

Les Bools sont utilisés dans les instructions de flux de contrôle en tant que conditions. L' instruction if utilise une condition booléenne pour déterminer le bloc de code à exécuter:

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

Annuler un Bool avec le préfixe! opérateur

Le préfixe ! L'opérateur renvoie la négation logique de son argument. C'est-à-dire que !true renvoie false et !false renvoie true .

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

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

Opérateurs logiques booléens

L'opérateur OR (||) renvoie true si l'un de ses deux opérandes est évalué à true, sinon il renvoie false. Par exemple, le code suivant a la valeur true car au moins une des expressions de chaque côté de l'opérateur OR est true:

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

L'opérateur AND (&&) ne renvoie true que si les deux opérandes sont considérés comme vrais. L'exemple suivant renvoie false car une seule des deux expressions d'opérande a la valeur true:

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

L'opérateur XOR (^) renvoie true si un et un seul des deux opérandes est évalué à true. Par exemple, le code suivant retournera true car un seul opérateur est considéré comme vrai:

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

Booléens et conditionnels en ligne

Une manière propre de gérer les booléens utilise un conditionnel en ligne avec le a? b: opérateur ternaire, qui fait partie des opérations de base de Swift.

Le conditionnel en ligne est composé de 3 composants:

question ? answerIfTrue : answerIfFalse

où question est un booléen évalué et answerIfTrue la valeur renvoyée si la question est vraie, et answerIfFalse la valeur renvoyée si la question est fausse.

L'expression ci-dessus est la même que:

if question {
    answerIfTrue
} else {
    answerIfFalse
}

Avec les conditionnels en ligne, vous retournez une valeur basée sur un booléen:

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'

Vous pouvez également appeler des méthodes basées sur une valeur booléenne:

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'

Les conditionnels en ligne permettent des évaluations booléennes à une seule ligne



Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow