Kotlin - 布尔值
很多时候我们会遇到需要做出是或否决定的情况,或者说true或false。为了处理这种情况,Kotlin 提供了 Boolean 数据类型,它的值只能是 true 或 false。
Kotlin 还有一个 可空的对应类型 Boolean?,它可以持有 null 值。
创建 Boolean 变量
可以使用 Boolean 关键字创建 boolean 变量,该变量的值只能是 true 或 false:
示例
fun main(args: Array<String>) {
val isSummer: Boolean = true
val isCold: Boolean = false
println(isSummer)
println(isCold)
}
运行上述 Kotlin 程序,将生成以下输出:
true false
实际上,我们可以不使用 Boolean 关键字创建 Kotlin boolean 变量,Kotlin 会根据赋值的 true 或 false 来推断变量类型。
Kotlin Boolean 操作符
Kotlin 为 boolean 变量提供了以下 内置 操作符,这些操作符也称为逻辑操作符:
| 操作符 | 名称 | 描述 | 示例 |
|---|---|---|---|
| && | 逻辑与 | 如果两个操作数均为 true,则返回 true | x && y |
| || | 逻辑或 | 如果任一操作数为 true,则返回 true | x || y |
| ! | 逻辑非 | 反转结果,如果操作数为 true 则返回 false | !x |
示例
以下示例展示了使用 Kotlin 逻辑操作符进行不同计算:
fun main(args: Array<String>) {
var x: Boolean = true
var y:Boolean = false
println("x && y = " + (x && y))
println("x || y = " + (x || y))
println("!y = " + (!y))
}
运行上述 Kotlin 程序,将生成以下输出:
x && y = false x || y = true !y = true
Kotlin Boolean 表达式
Boolean 表达式返回 true 或 false 值,主要用于与 if...else 表达式一起检查条件。Boolean 表达式使用关系操作符,例如 >, <, >= 等。
fun main(args: Array<String>) {
val x: Int = 40
val y: Int = 20
println("x > y = " + (x > y))
println("x < y = " + (x < y))
println("x >= y = " + (x >= y))
println("x <= y = " + (x <= y))
println("x == y = " + (x == y))
println("x != y = " + (x != y))
}
运行上述 Kotlin 程序,将生成以下输出:
x > y = true x < y = false x >= y = true x <= y = false x == y = false x != y = true
Kotlin and() 和 or() 函数
Kotlin 提供了 and() 和 or() 函数,用于在两个 boolean 操作数之间执行逻辑 AND 和逻辑 OR 操作。
这些函数与 && 和 || 操作符不同,因为这些函数不执行短路求值,而是总是评估两个操作数。
fun main(args: Array<String>) {
val x: Boolean = true
val y: Boolean = false
val z: Boolean = true
println("x.and(y) = " + x.and(y))
println("x.or(y) = " + x.or(y))
println("x.and(z) = " + x.and(z))
}
运行上述 Kotlin 程序,将生成以下输出:
x.and(y) = false x.or(y) = true x.and(z) = true
Kotlin 还提供了 not() 和 xor() 函数,分别用于执行逻辑 NOT 和 XOR 操作。
Boolean 转 String
可以使用 toString() 函数将 Boolean 对象转换为其等效的字符串表示。
当将 true 或 false 值赋给 String 变量时,需要进行这种转换。
fun main(args: Array<String>) {
val x: Boolean = true
var z: String
z = x.toString()
println("x.toString() = " + x.toString())
println("z = " + z)
}
运行上述 Kotlin 程序,将生成以下输出:
x.toString() = true z = true
测验时间 (面试与考试准备)
Q 1 - 关于 Kotlin Boolean 数据类型的以下哪项描述是正确的?
A - Boolean 数据类型可以有 true 和 false 两个值
B - Boolean 数据类型可以有 0 和 1 两个值
C - 可以将 Boolean 值赋值给 integer 变量
D - 以上全部
答案:A
解释
Kotlin Boolean 变量只能有两个值:true 或 false
Q 2 - 以下程序的输出结果是什么:
fun main(args: Array<String>) {
val x: Boolean = true
var y: String
y = x
}
A - 将成功编译,无错误和警告
B - 仅会产生警告
C - 编译将因错误而停止
D - 以上均非
答案:C
解释
编译将因类型不匹配错误而停止,因为我们试图将 Boolean 值存储到 String 变量中。在将 Boolean 值赋值给 String 变量之前,应该使用 toString() 将其转换为 string 值。