Kotlin - when

公開日:2019-11-06 更新日:2019-11-06
[Kotlin]

1. 概要

when を使うと、複数の条件分岐を行うことができます。
他の言語の switch とほぼ同じです。


2. when

分岐ごとに戻り値を返します。
var obj:Any = "abc";
var s:String = when (obj) {
    1,2,3,4,5 -> "1 ~ 5"
    in 6..9   -> "6 ~ 9"
    is Int    -> "数値"
    is String -> "文字列"
    else      -> "error"
}
println(s); //文字列

処理を分岐します。
var b = false;
when(b) {
    true -> {
        println("True です。")
    }
    false -> {
        println("False です。")
    }
}
//結果:False です。

処理を分岐して、値を返します。
値を返す時は、変数かリテラル値だけを書きます。return は不要です。
var else_value = "else"
var n = 1;
var s = when(n) {
    1 -> {
        println("1")
        "1 です。"  //戻り値
    }
    2 -> {
        println("2")
        "2 です。" //戻り値
    }
    else -> {
        println("else")
        else_value //戻り値
    }
}
println(s) 
// 結果
// 1
// 1 です。