布尔和内联条件

一个处理布尔值的干净方法是使用内联条件 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'

内联条件允许干净的单行布尔评估