检查Kotlin中的功能是否为空

时间:2016-04-27 10:06:23

标签: kotlin

我有一些回调,其参数定义如下:

val getMoreFunction : (() -> FSDirResult)? = null

Nullable,因为我需要知道函数是否实际定义。但我觉得这很糟糕。我宁愿将{}而不是null传递给我的回调。那么有没有办法确定是否通过了空函数?

1 个答案:

答案 0 :(得分:3)

理想情况下,您可以使用默认参数,即:。

fun saneDefault(getMoreFunction: (() -> String) = { "" }): Boolean {
    val result = getMoreFunction()
    return result.isEmpty()
}

但是如果真的,真的,真的需要知道参数是否通过,你可以存储默认参数值,如下所示:

private val DEFAULT = { throw UnsupportedOperationException("this shouldn't be called") }

fun isDefaultPassed(getMoreFunction: (() -> String) = DEFAULT): Boolean {
    if(getMoreFunction == DEFAULT){
        return true
    }
    return false
}