val a: String? = ...
val b: String? = ...
val r = if (a != null && b != null) {
a + b
}
r?.let { print(it) } // else 無いと if式の代入がコンパイル通らない
val a: String? = ...
val b: String? = ...
val r = if (a != null && b != null) {
a + b
} else {
null
}
r?.let { print(it) } // 毎回 else null 書くのは現実的では無さそう
val a: String? = ...
val b: String? = ...
if (a != null && b != null) {
print(a + b)
}
// 副作用を密結合させてしまう方が簡単ってなってしまう