在 Kotlin 中如何检查 lambda 是否为空?
例如,我有这样的签名
onError:(Throwable) -> Unit = {}
我如何区分它的默认值是应用于主体还是应用于此函数的值?
您无法测试 lambda 的主体是否为空(因此它不包含源代码),但您可以通过为该值创建常量并将其用作默认值来检查 lambda 是否是您的默认值。您还可以检查该值是否为默认值:
fun main(args: Array<String>) {
foo()
foo { }
foo { println("Bar") }
}
private val EMPTY: (Throwable) -> Unit = {}
fun foo(onError: (Throwable) -> Unit = EMPTY) {
if (onError === EMPTY) {
// the default value is used
} else {
// a lambda was defined - no default value used
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)