私が取り組んでいるプロジェクトでは、オプションがnullの場合にデフォルト値を返すために、いくつかのタイプの拡張メソッドをいくつか作成していることに気付きました。
たとえば、Boolean?
オブジェクトがあり、それをデフォルトでfalseに設定された条件式で使用したい場合は、次のように記述します。
if (myOptional?.default(false)) { .. }
私はこれをいくつかのタイプのために書いた:
fun Boolean?.default(default: Boolean): Boolean {
return this ?: default
}
fun Long?.default(default: Long): Long {
return this ?: default
}
fun Int?.default(default: Int): Int {
return this ?: default
}
これを一般的に行う方法があるかどうか疑問に思っているので、すべての型に使用できる1つの拡張メソッドを記述できますか?
私はそれを行わず?:
、すべてのKotlin開発者が知っておくべき標準の演算子を使用します。これはより簡潔です。
しかし、あなたの質問に答えるために:
fun main(args: Array<String>) {
val k1: Long? = null
val k2: Long? = 4L
println(k1.default(0L)) // prints 0
println(k2.default(0L)) // prints 4
}
fun <T> T?.default(default: T): T {
return this ?: default
}
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加