Swift之Boolean
Swift有一个叫Bool的基础布尔类型。布尔值也被称为逻辑值,因为从来它们的值只是ture或者false。Swift提供了两个布尔常量,true和false:
let orangesAreOrang = true
let turnipsAreDelicious = false
orangesAreOrange和turnipsAreDelicious的类型为布尔型实际上是由它们初始化的字面量值推断出来的。和之前的Int和Double一样,如果你在一创建它们时就为它们设置一个ture或false时就不需在要声明时指明它们为一个Bool。类型推断能帮助Swift的代码更简洁可读,当通过其它值来初始化一个常量或变量时其类型实际上已经知道了。布尔值在条件语句中时特别有用,比如if条件:
if turnipsAreDelicious{
println("Mmm, tasty turnips!")
}else{
println("Eww, turnips are horrible.")
}
// 打印出 "Eww,turnips are horrible"
条件语句比如if条件语句的更多详细信息在"Swift之控制流"小节中说明。
Swift的类型安全阻止了非布尔值来代替布尔值。下边这个例子会报出一个编译时错误:
let i =1
if i {
// 这个例子将不能被编译,并且报出一个错误
}
然而,替代为下边这个例子将会被通过:
let i =1
if i==1{
// 这个例子将会成功的编译通过
}
i==1 比较的结果是一个布尔类型,所以第二个例子能通过类型检测,像i==1这样的比较将在"Swift之基础操作运算"小节中详细讨论。
结合其它的Swift类型安全例子,这更能避免意外的错误和保证特定的代码更清晰。