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()
}