布尔型只有一个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的疯狂讲义