KotlinはNull許容型をサポートしており、変数がnullである可能性がある場合に備えてエルビス演算子(?:
)が用意されています。このエルビス演算子は、変数がnullでない場合にはその値を返し、nullの場合には代替値を返すためのものです。
以下のコードを見てみましょう:
fun main() {
val nullableValue: Int? = null
val result = nullableValue ?: 10 // エルビス演算子を使用
println(result)
}
このコードでは、nullableValue
がnullであるため、エルビス演算子が代替値である10
を返します。したがって、このプログラムを実行すると、コンソールに10
が表示されます。
しかし、エルビス演算子はさらにニッチな挙動を持っています。それは、代替値としてnullを指定した場合です。以下のコードを見てみましょう:
fun main() {
val nullableValue: Int? = null
val result = nullableValue ?: null // 代替値としてnullを指定
println(result)
}
この場合、エルビス演算子はnullableValue
がnullである場合にnull
を返します。そのため、コンソールには何も表示されず、結果はnullです。
この挙動は、特定のケースで便利です。たとえば、関数がnull許容型の値を返す場合、エルビス演算子を使用してデフォルト値としてnullを指定することで、呼び出し元がnullチェックを行う手間を省くことができます。
Kotlinのエルビス演算子は、Null許容型のコードをよりシンプルにし、エラーを防ぐための強力なツールです。しかし、代替値としてnullを指定することによる挙動は、注意して使用する必要があります。