KotlinのNullチェックはまさに神だと思います。
v ?: return
Javaで書くとこういうことです。
if (v == null) {
return
}
これに対して、NotNullチェックは特に用意されていないのです。
つまり、
if (v != null) {
return
}
と、Javaのような書き方をしないといけません。
気にならない人は気にならないかもしれませんが、NullチェックとNotNullチェックが並んでいて、且つ頻繁に変更されることがあるとしたら、都度面倒な修正をしないといけないので、上記のような書き方ではちょっと嫌になります。
インライン関数の登場
自分好きな名前でインライン関数を作成してみましょう。
private inline fun <T> ifNotNull(p: T?, f: () -> Unit) {
if (p != null) f()
}
private inline fun <T> ifNull(p: T?, f: () -> Unit) {
p ?: f()
}
すると、下記のように同じフォーマットで書くことができます。
ifNull(aa) {}
ifNotNull(bb) {}
ifNull(cc) {}
NullチェックとNotNullチェックを変更する時は、メソッド名を変えるだけで、簡単に処理を切り替えることができます。