when 语句而不是 if-else-if 链

when 语句是具有多个 else-if-branches 的 if 语句的替代:

when {
    str.length == 0 -> print("The string is empty!")
    str.length > 5  -> print("The string is short!")
    else            -> print("The string is long!")
}

使用 if-else-if 链写的相同代码 :

if (str.length == 0) {
    print("The string is empty!")
} else if (str.length > 5) {
    print("The string is short!")
} else {
    print("The string is long!")
}

就像使用 if 语句一样,else-branch 是可选的,你可以根据需要添加任意数量的分支。你还可以拥有多行分支:

when {
    condition -> {
        doSomething()
        doSomeMore()
    }
    else -> doSomethingElse()
}