Swift 有一个基本的布尔(Boolean)类型,叫做 Bool。布尔值指逻辑上的值,因为它们只能是真或者假。
Swift 有两个布尔常量,true
和 false
:
let orangesAreOrange = true
let turnipsAreDelicious = false
orangesAreOrange
和 turnipsAreDelicious
的类型会被推断为 Bool
,因为它们的初值是布尔字面量。就像之前提到的 Int
和 Double
一样,如果你创建变量的时候给它们赋值 true
或者 false
,那你不需要将常量或者变量声明为 Bool
类型。初始化常量或者变量的时候如果所赋的值类型已知,就可以触发类型推断,这让 Swift 代码更加简洁并且可读性更高。
当你编写条件语句比如 if
语句的时候,布尔值非常有用:
if turnipsAreDelicious {
print("Mmm, tasty turnips!")
} else {
print("Eww, turnips are horrible.")
}
// 输出“Eww, turnips are horrible.”
条件语句,例如 if
,请参考 控制流 。
如果你在需要使用 Bool
类型的地方使用了非布尔值,Swift 的类型安全机制会报错。下面的例子会报告一个编译时错误:
let i = 1
if i {
// 这个例子不会通过编译,会报错
}
然而,下面的例子是合法的:
let i = 1
if i == 1 {
// 这个例子会编译成功
}
i == 1
的比较结果是 Bool
类型,所以第二个例子可以通过类型检查。类似 i == 1
这样的比较,请参考 基本操作符。
和 Swift 中的其他类型安全的例子一样,这个方法可以避免错误并保证这块代码的意图总是清晰的。
下一节:元组(tuples)把多个值组合成一个复合值。元组内的值可以是任意类型,并不要求是相同类型。