Sök…


Vad är Bool?

Bool är en boolesisk typ med två möjliga värden: true och false .

let aTrueBool = true
let aFalseBool = false

Bool används i kontrollflödesanalyser som villkor. if uttalandet använder ett booleskt tillstånd för att bestämma vilket kodblock som ska köras:

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

Negera en Bool med prefixet! operatör

Prefixet ! operatören returnerar den logiska förkastningen av sitt argument. Det vill säga !true returnerar false , och !false returnerar true .

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

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

Booleska logiska operatörer

Operatören OR (||) returnerar true om en av dess två operander utvärderar till true, annars returnerar den falskt. Exempelvis utvärderas följande kod till true eftersom åtminstone ett av uttryck på endera sidan av OR-operatören är sant:

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

Operatören AND (&&) returnerar bara sant om båda operanderna bedömer vara sanna. Följande exempel kommer att returnera falskt eftersom endast ett av de två operanduttryck utvärderar till sant:

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

Operatören XOR (^) returnerar true om en och endast en av de två operandema utvärderar till true. Till exempel kommer följande kod att returnera sann eftersom endast en operatör utvärderar att vara sant:

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

Booleans och inline Conditionals

Ett rent sätt att hantera booléer är att använda en inline som är villkorad med a? b: c ternary operator, som är en del av Swifts grundläggande verksamhet .

Den inline villkor består av tre komponenter:

question ? answerIfTrue : answerIfFalse

där frågan är en booleska som utvärderas och answerIfTrue är det värde som returneras om frågan är sann, och answerIfFalse är värdet som returneras om frågan är falsk.

Uttrycket ovan är samma som:

if question {
    answerIfTrue
} else {
    answerIfFalse
}

Med inline conditionals returnerar du ett värde baserat på en booleska:

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'

Du kan också ringa metoder baserade på ett booleskt värde:

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 möjliggör rena booleska utvärderingar med en foder



Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow