Swift Language
Booleans
Zoeken…
Wat is Bool?
Bool is een Boolean type met twee mogelijke waarden: true
en false
.
let aTrueBool = true
let aFalseBool = false
Bools worden als condities in besturingsstroomverklaringen gebruikt. De instructie if
gebruikt een Booleaanse voorwaarde om te bepalen welk codeblok moet worden uitgevoerd:
func test(_ someBoolean: Bool) {
if someBoolean {
print("IT'S TRUE!")
}
else {
print("IT'S FALSE!")
}
}
test(aTrueBool) // prints "IT'S TRUE!"
Ontken een Bool met het voorvoegsel! operator
Het voorvoegsel !
operator retourneert de logische ontkenning van zijn argument. Dat wil zeggen !true
retourneert false
en !false
retourneert true
.
print(!true) // prints "false"
print(!false) // prints "true"
func test(_ someBoolean: Bool) {
if !someBoolean {
print("someBoolean is false")
}
}
Booleaanse logische operatoren
De operator OR (||) retourneert true als een van de twee operanden evalueert naar true, anders retourneert deze false. De volgende code wordt bijvoorbeeld geëvalueerd als true omdat ten minste een van de expressies aan weerszijden van de operator OF waar is:
if (10 < 20) || (20 < 10) {
print("Expression is true")
}
De operator AND (&&) retourneert alleen true als beide operanden als waar evalueren. In het volgende voorbeeld wordt false geretourneerd, omdat slechts een van de twee operand-expressies de waarde true geeft:
if (10 < 20) && (20 < 10) {
print("Expression is true")
}
De operator XOR (^) retourneert true als een en slechts een van de twee operanden de waarde true geeft. De volgende code retourneert bijvoorbeeld true, omdat slechts één operator als waar beoordeelt:
if (10 < 20) ^ (20 < 10) {
print("Expression is true")
}
Booleans en Inline Conditionals
Een schone manier om met booleans om te gaan, is een inline voorwaardelijk te gebruiken met de a? b: c ternaire operator, die deel uitmaakt van Swift Basishandelingen .
De inline conditionele bestaat uit 3 componenten:
question ? answerIfTrue : answerIfFalse
waarbij vraag een Booleaanse waarde is die wordt geëvalueerd en answerIfTrue is de geretourneerde waarde als de vraag waar is en answerIfFalse is de geretourneerde waarde als de vraag onwaar is.
De bovenstaande uitdrukking is dezelfde als:
if question {
answerIfTrue
} else {
answerIfFalse
}
Met inline conditionals retourneert u een waarde op basis van een booleaanse waarde:
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'
U kunt ook methoden aanroepen op basis van een booleaanse waarde:
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 conditionals zorgen voor schone Booleaanse evaluaties met één voering