Kotlin 控制流

来源:互联网 发布:哈佛中国史知乎 编辑:程序博客网 时间:2024/06/06 15:04

和Java一样, Kotlin 支持常用的控制流: if else, for, while, when, break, continue 等。
if else, for, while, break, continue 和 Java 的类似, 不再赘述。
Kotlin 不提供 switch, 但是提供了增强版的 when 替代 switch。

  • when

有两种形式的 when:一种是类似 switch, 接受一个参数; 一种是没有参数, 类似 if else 。

when (x) {    0 -> println("x is zero")    1 -> println("x is 1")    else -> println("X is neither 0 or 1")}fun isAbs(x: Int) = when (x) {    Math.abs(x) -> true    else -> false}fun isSingleDigit(x: Int): Boolean {    return when (x) {        in -9..9 -> true        else -> false    }}fun startsWithFoo(any: Any): Boolean {    return when (any) {        is String -> any.startsWith("Foo") // smart cast        else -> false    }}

如上示例, when 比 switch 功能更强,达到多级 else if 的效果。
when 可以没有参数,如下示例:

fun whenWithoutArgs(x: Int, y: Int) {    when {        x < y -> println("x is less than y")        x > y -> println("X is greater than y")        else -> println("X must equal y")    }}

参考
《Programming Kotlin》Stephen Samuel ,Stefan Bocutiu
《Kotlin in Action》Dmitry Jemerov,Svetlana Isakova

原创粉丝点击