C語(yǔ)言和OC并沒(méi)有真正的Bool類型
C語(yǔ)言的Bool類型非0即真
OC語(yǔ)言的Bool類型是typedef signed char BOOL;
Swift引入了真正的Bool類型 Bool true false
Swift中if的條件只能是一個(gè)Bool的值或者是返回值是Bool類型的表達(dá)式(==/!=/>/<等等)
OC中if可以是任何整數(shù)(非0即真), 但是存在的問(wèn)題是可能將判斷寫錯(cuò), 寫成了賦值if(isOpen = 2), 在開(kāi)發(fā)中為了避免這個(gè)問(wèn)題有經(jīng)驗(yàn)的程序員會(huì)這樣寫 if(2 == isOpen)來(lái)避免這個(gè)問(wèn)題. 在Swift中很好的解決了這個(gè)問(wèn)題
let isOpen = true; // 打印 打開(kāi)
// let isOpen = 1; // error : Type 'Int' does not conform to protocol 'BooleanType'
if isOpen {
print("打開(kāi)")
} else {
print("關(guān)閉")
}