【发布时间】:2017-05-06 23:43:58
【问题描述】:
在我正在进行的一个项目中,我发现自己为某些类型编写了一些扩展方法,以便在可选项为 null 时返回默认值。
例如,我可能有一个Boolean? 对象,我想在默认为假的条件表达式中使用它,所以我会这样写:
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
}
我想知道是否有一种方法可以通用地做到这一点,所以我可以编写一个可用于所有类型的扩展方法?
【问题讨论】:
-
有什么意义?为什么不直接使用
?:?它既标准又更简洁。 -
....我猜我没有真正的理由哈哈。这只是我开始走下的个人偏好路线。
-
请注意
if中的?.是多余的 -
很好,伏丹。谢谢!
标签: generics extension-methods kotlin