1. ホーム
  2. kotlin

[解決済み】Swiftの「if let」文がKotlinで同等であること

2022-02-11 16:44:49

質問

Kotlinでは、以下のSwiftのコードに相当するものはありますか?

if let a = b.val {

} else {

}

解決方法は?

を使用することができます。 let -関数はこのようになります。

val a = b?.let {
    // If b is not null.
} ?: run {
    // If b is null.
}

を呼び出す必要があることに注意してください。 run 関数は、コードのブロックが必要な場合にのみ使用します。を削除することができます。 run -ブロックは、elvis-operator の後にワンライナーしかない場合 ( ?: ).

注意することは run ブロックは、以下のいずれかの場合に評価されます。 b がNULLの場合、または let -ブロックの評価結果は null .

このため、通常は if を表現します。

val a = if (b == null) {
    // ...
} else {
    // ...
}

この場合 else -ブロックが評価されるのは b がヌルでない場合。