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精通ちょうど骨董ことはないよ)