nullableがある場合Boolean b
、Javaで次の比較を行うことができます:
Boolean b = ...;
if (b != null && b) {
/* Do something */
} else {
/* Do something else */
}
Kotlinでは、私は !!
演算子ます。
val b: Boolean? = ...
if (b != null && b!!) {
/* Do something */
} else {
/* Do something else */
}
しかし、の使用は!!
私には少しおおざっぱな感じがし、ヌルセーフティシステムを回避します。
これのためのよりエレガントなアプローチはありますか?
編集少し単純化しすぎたようです。ローカル変数の場合、Bantharが示すように、機能します。ただし、私のブール値b
は実際には「バッキングフィールドのあるプロパティ」です(これは実際にはまだスピードアップしていません)。これが結果です:
b
可能性がnull
あり、Kotlinの機能の1つはNull Safetyです。これにより、null許容可能な参照を評価しようとするとコンパイルエラーが発生します。したがって、plain b
を使用するとコンパイルエラーが発生します:)
b != nil
、右側をチェックする前にそれをキャッチしませんか?
val r = b?doSomething() ?: doSomethingElse()
うまくいくと思います。
!!b
は単に必要ではなく、なぜ必要b
ですか?(私は、kotlin精通ちょうど骨董ことはないよ)