检查Kotlin中的函数是否为空

我有一个回调,有一个像这样定义的参数:

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

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

理想情况下,你会有一个默认的参数,可以被称为即:

 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 }