【Kotlin/Android】takeIfとtakeUnlessの使い方と違い!

この記事からわかること
- Android Studio/KotlinのtakeIfの使い方
- takeUnlessとの違い
index
[open]
\ アプリをリリースしました /
環境
- Android Studio:Flamingo
- Kotlin:1.8.20
公式リファレンス:takeIf and takeUnless
Kotlinのスコープ関数のtakeIf
メソッドについてまとめていきます。と
takeUnless
takeIfの使い方
inline fun <T> T.takeIf(predicate: (T) -> Boolean): T?
KotlinのtakeIf
は指定した条件を満たす場合はオブジェクトを、満たさない場合はnullを返すメソッドです。定義はジェネリクス型(T
)となっているのであらゆる型のオブジェクトから呼び出すことが可能になっています。
val num = 15
val result = num.takeIf { it > 10 }
println(result) // 出力: 15
val result2 = num.takeIf { it > 20 }
println(result2) // 出力: null
takeUnlessの使い方
inline fun <T> T.takeUnless(predicate: (T) -> Boolean): T?
KotlinのtakeUnless
はtakeIf
の逆で指定した条件を満たさない場合はオブジェクトを、満たす場合はnullを返すメソッドです。こちらも定義はジェネリクス型(T
)となっているのであらゆる型のオブジェクトから呼び出すことが可能になっています。
val num = 15
val result = num.takeUnless { it > 10 }
println(result) // 出力: null
val result2 = num.takeUnless { it > 20 }
println(result2) // 出力: 15
まだまだ勉強中ですので間違っている点や至らぬ点がありましたら教えていただけると助かります。
ご覧いただきありがとうございました。