布爾型只有一個Boolean類型,用於表示邏輯上的「真」或「假」。與Java相似,Kotlin的 Boolean類型的值只能是true或false,不能用0或者非0來表明。其餘數據類型的值也不能轉換成Boolean類型。html
例如,下面代碼定義了兩個Boolean類型的變量,並指定初始值。編程
程序清單:codes\02\2.7\BooleanTest.ktapp
fun main(args: Array<String>) {ide
// 定義b1的值爲truepost
var b1 : Boolean = truespa
// 定義b2的值爲falsecode
var b2 : Boolean = falseorm
}cdn
字符串"true"和"false"不會直接轉換成Boolean類型,但Boolean類型的變量一樣能夠「插值」到字符串中。看下面代碼(程序清單同上): xml
// 將Boolean類型的變量插值到字符串中
var str: String = "${b1}表明真"
println(str)
與前面介紹數值型、Char型相似的是,Boolean類型的變量不能接受null值,Boolean?類型的變量才能接受null值。Boolean類型將直接映射爲Java的boolean基本類型,但Boolean?類型將會映射成boolean的包裝類:Boolean。
Boolean類型的值或變量主要用做旗標來進行流程控制,在Kotlin語言中使用Boolean類型的變量或值控制的流程主要有以下幾種。
除此以外,Boolean類型的變量和值還可在三目運算符(? :)中使用。這些內容在3.9節將會有更詳細的介紹。
若是程序在須要使用Boolean類型的地方使用了非Boolean值,Kotlin的類型檢查機制會報錯。下面例子會報告一個編譯錯誤。
var i = 1
if (i) {
// 這個例子不能經過編譯,會報錯
}
下面例子則是正確的。
var i = 1
if (i == 1) {
// 這個例子能夠經過編譯,不會報錯
}
上面程序中第一個例子if後面指望一個Boolean類型的值,但常量i是Int類型的,所以這個例子沒法經過編譯;對於i == 1比較的結果是Boolean類型,所以第二個例子能夠經過編譯檢查。
以上內容節選自《瘋狂Kotlin講義》:一本讓您最直接認識Kotlin的瘋狂講義