疯狂kotlin讲义连载之Kotlin的基础类型-- Boolean型

352 阅读2分钟

布尔型只有一个Boolean类型,用于表示逻辑上的“真”或“假”。与Java类似,Kotlin的 Boolean类型的值只能是true或false,不能用0或者非0来代表。其他数据类型的值也不能转换成Boolean类型。

例如,下面代码定义了两个Boolean类型的变量,并指定初始值。

程序清单:codes\02\2.7\BooleanTest.kt

fun main(args: Array<String>) {

// 定义b1的值为true

var b1 : Boolean = true

// 定义b2的值为false

var b2 : Boolean = false

}

字符串"true"和"false"不会直接转换成Boolean类型,但Boolean类型的变量同样可以“插值”到字符串中。看下面代码(程序清单同上):

// 将Boolean类型的变量插值到字符串中

var str: String = "${b1}代表真"

println(str)

与前面介绍数值型、Char型类似的是,Boolean类型的变量不能接受null值,Boolean?类型的变量才能接受null值。Boolean类型将直接映射为Java的boolean基本类型,但Boolean?类型将会映射成boolean的包装类:Boolean。

Boolean类型的值或变量主要用作旗标来进行流程控制,在Kotlin语言中使用Boolean类型的变量或值控制的流程主要有如下几种。

  •  if条件控制语句。
  •  while循环控制语句。
  •  do while循环控制语句。

除此之外,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的疯狂讲义


本书即将于2017年11月发售 敬请期待
往期连载
第一期:第一期:juejin.im/post/59c0b7…

第二期:juejin.im/post/59c1d6…

第三期:juejin.im/post/59e407…

第四期:juejin.im/post/59ed77…

第五期:juejin.im/post/59eec3…

第六期:juejin.im/post/59effb…

第七期:juejin.im/post/59f153…

第八期:juejin.im/post/59f283…

第九期:juejin.im/post/59f686…

第十期:juejin.cn/post/684490…

相关书籍《疯狂Android讲义》https://item.jd.com/11689014.html