Swift Language
Booleany
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ą