そーす

福岡在住のプログラマ。SwiftとかKotlinとかJavascriptとかSketchとか触ってます。

Kotlinのif式とwhen式

f:id:saburesan:20160906091652j:plain

Kotlinのifとwhenは式です。

ifは式

どういうことかというと Javaだと…

String message = "";
if( count > 0 ){
    message = "hoge"
} else {
   message = "fuga"
}

こうなるプログラムが

Kotlinでは…

val message = if( count > 0) "hoge" else "fuga"

と書けます。

ブロック内の最後の行が評価されます。

ちなみに、kotlinは三項演算子は無いのでif式で代用します。

when式

when氏、最高過ぎ問題。

val value = 100
val message = when(value){
      100 -> "100"
      in 10..99 -> "in 10..99"
      !in 10..99 -> "!in 10..99"
      as Int -> {
              //ブロックでも書けるよ
              "Int"
      }
      else -> "hoge"
}

//whenに引き数を渡さなくても良い
val message = when {
      value == 100 -> "100"
      value in 10..99 -> "in 10..99"
      value !in 10..99 -> "!in 10..99"
      value as Int -> "Int"
      else -> "hoge"
}