布林和內聯條件

一個處理布林值的乾淨方法是使用內聯條件 a?b:c 三元運算子,是 Swift 基本運算的一部分

內聯條件由 3 個元件組成:

question ? answerIfTrue : answerIfFalse

其中 question 是一個被計算的布林值,如果問題為真,則 answerIfTrue 是返回的值,如果問題為 false,則 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'

內聯條件允許乾淨的單行布林評估