普通のnullチェック
メソッドの冒頭でnull
かどうかをチェックして以下のように処理を行なう。
null
ならreturn
するnull
でないなら処理を行なう
例えばnullable
な数値の足し算は以下のようになる。
fun addNullable(x: Int?, y: Int?): Int? {
if (x == null || y == null) {
return null
}
return x + y
}
ちなみに引数のx
、y
はInt?
型だがreturn x + y
のx
とy
は
null
チェック後なので推論されてInt
型となっている。
エルビス演算子を使ったnullチェック
エルビス演算子?:
を使うとKotlinらしいコードになる。
エルビス演算子は
x ?: y
という式で、以下のように評価される式を構成する。
x
がnull
でないならx
の値x
がnull
ならy
の値
?:
の後ろのy
の部分はreturn
式も書けるので以下のように書ける。
fun addNullable(x: Int?, y: Int?): Int? {
val a = x ?: return null
val b = y ?: return null
return a + b
}
x
、y
はInt?
のようにnullableな型となっているが、
a
、b
はInt
のようにnon nullableな型となる。
エルビス演算子でthrowもできる
return
の代わりにthrow
で例外を投げることもできる。
fun addNullable(x: Int?, y: Int?): Int? {
val a = x ?: throw Exception("x is null")
val b = y ?: throw Exception("y is null")
return a + b
}
\確かな知識を身に着けたい、Androidアプリ開発を学びたい人にオススメ!/