web-dev-qa-db-ja.com

nullでない場合にのみ変数に値を割り当てます-Kotlin

Kotlinには、値がnullでない場合にのみ変数に値を割り当てるクリーンな方法がありますか?

例は次のとおりです。

if(x != null)
   y = x

私は次のような解決策を見つけました

y = x? : return

しかし、これが私が望むことをするかどうか、そしてこの演算子がどのように機能するかを理解することはできません。

12
BlueSeph

演算子は、エルビス演算子と呼ばれます。 xがnullでないかどうかを評価し、それが真の場合、xyに割り当てます。 nullの場合、疑問符の後のステートメントを評価し、すぐに戻り、したがってyをそのままにします。

3
fjc

まだ関数から戻りたくない場合の別の解決策:

x?.let{ y = it }

xが非nullかどうかを確認し、それをラムダブロックへの唯一のパラメーターとして渡します。

これは、xvarである場合の安全な呼び出しでもあります。

25
Pawel