Kotlinでnullチェックし、nullではない場合とnullの場合でif/elseを使うのは個人的にダサいと思うので共有。
やる場合はlet/?:runを使うべし!
これはダサい例
if (userIcon != null) {
// userIconが存在 → ユーザー画像を設定
Image(
painter = painterResource(id = userIcon),
contentDescription = null,
)
} else {
// userIconがnull → デフォルト画像を設定
Image(
painter = painterResource(id = R.drawable.default_image),
contentDescription = null,
)
}
if/elseの場合はuserIconがある場合に、再度userIconを渡している。。
Kotlin風のモダンな書き方
userIcon?.let {
// userIconが存在 → ユーザー画像を設定
Image(
painter = painterResource(id = it),
contentDescription = null,
)
} ?: run {
// userIconがnull → デフォルト画像を設定
Image(
painter = painterResource(id = R.drawable.default_image),
contentDescription = null,
)
}
nullではない場合に、let以降でitでuserIconを取れる。
Kotlin風な書き方でかけて良くなった!!
参考記事
https://ticktakclock.hatenablog.com/entry/2020/02/22/203408