如何检查kotlin中的lambda空虚

时间:2017-08-21 14:36:19

标签: android function lambda kotlin

如何检查Kotlin中lambda是否为空? 例如,我有像

这样的签名
onError:(Throwable) -> Unit = {}

我有什么区别,它的默认值是正文还是应用于此函数的值?

2 个答案:

答案 0 :(得分:9)

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

<uses-permission android:name="android.permission.CALL_PHONE"></uses-permission>

答案 1 :(得分:1)

请不要将空的lambda作为默认值。

由于Kotlin中的可空性是头等公民,并且清楚地表明缺少值,因此我将null用作默认参数。

onError: ((Throwable) -> Unit)? = null

签名看起来有些丑陋,但我认为这是值得的。

例如,可以轻松地对其进行检查和处理,并且您不希望lambda会做有用的事情-尤其是对于具有返回值的lambda。

我在这里也发表了同样的评论:https://stackoverflow.com/a/38793639/3917943