普通の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アプリ開発を学びたい人にオススメ!/
