布林和內聯條件
一個處理布林值的乾淨方法是使用內聯條件 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'
內聯條件允許乾淨的單行布林評估