如何检查kotlin中的lambda空虚

如何检查Kotlin中的lambda是否为空? 例如,我有类似的签名

onError:(Throwable) -> Unit = {} 

我怎么能不同的是它的默认值来应用到这个函数的身体或价值?

你不能测试一个lambda的主体是否为空(所以它不包含源代码),但是你可以通过为该值创建一个常量并将其用作默认值来检查lambda是否是默认值。 比你还可以检查值是否为默认值:

 fun main(args: Array) { 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 } }