[解決済み] if式でのBoolean?の使用
2022-04-28 08:19:32
質問
もし、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 */
}
しかし
!!
は、NULL安全システムを回避しているようで、少し大雑把な感じがします。
もっとエレガントな方法はないのでしょうか?
編集
ちょっと簡略化しすぎたようです。ローカル変数については
バンサー
が示すように、動作します。しかし、私のブーリアン
b
は、実際には "バッキングフィールドを持つプロパティ"です(私はこれが何を課すかについてまだ本当にスピードアップしていません)。これがその結果です。
解決方法は?
nullable booleanの比較は
true
,
false
または
null
等号演算子を使っています。
var b: Boolean? = null
if (b == true) {
// b was not null and equal true
}
if (b == false) {
// b is false
}
if (b != true) {
// b is null or false
}
関連
-
[解決済み] Kotlinのメンバー宣言に期待する
-
[解決済み] Kotlinの'let'キーワードの目的は何ですか [重複]。
-
[解決済み] lateinit "変数が初期化されたかどうかを確認する方法は?
-
[解決済み】Kotlin:関数を他の関数にパラメータとして渡すには?
-
[解決済み] Kotlinのfoldとreduceの違い、いつどちらを使うか?
-
[解決済み] if式でのBoolean?の使用
-
[解決済み] Kotlinで'by'キーワードは何をするのですか?
-
[解決済み] '変数'が変更可能なプロパティであるため、'型'へのスマートキャストは不可能である。
-
[解決済み] の警告を表示します。クラスパスのKotlinランタイムJARファイルは同じバージョンでなければならない
-
[解決済み] Kotlinでリソースからテキストファイルを読み込むには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Kotlin : インタフェース Queue のコンストラクタがない。
-
[解決済み] Kotlinのメンバー宣言に期待する
-
[解決済み] Kotlinの'let'キーワードの目的は何ですか [重複]。
-
[解決済み] Kotlinの「?:」は何をするのか?(エルビス演算子)
-
[解決済み] lateinit "変数が初期化されたかどうかを確認する方法は?
-
[解決済み] Kotlinで、nullableな値を扱う慣用的な方法、参照または変換する方法は何ですか?
-
[解決済み] '変数'が変更可能なプロパティであるため、'型'へのスマートキャストは不可能である。
-
[解決済み] Kotlinでリソースからテキストファイルを読み込むには?
-
[解決済み] Kotlinでhashmapを繰り返し処理するには?
-
[解決済み] MutableLiveData。コルーチンからバックグラウンドスレッドでsetValueを実行できない