Ada*_*331 2 generics extension-methods kotlin
在我正在研究的项目中,我发现自己为某些类型编写了一些扩展方法,如果可选项为null,则返回默认值.
例如,我可能有一个Boolean?对象,我想在条件表达式中使用它默认为false,所以我会写:
if (myOptional?.default(false)) { .. }
Run Code Online (Sandbox Code Playgroud)
我写了几个类型:
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
}
Run Code Online (Sandbox Code Playgroud)
我想知道是否有一种方法可以做到这一点,所以我可以写一个扩展方法,我可以用于所有类型?
我不会这样做,并使用?:每个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
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1247 次 |
| 最近记录: |