检查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 }
- 匕首和Kotlin。 匕首不生成组件类
- Kotlin测试失败从命令行与ClassNotFoundException但从IntelliJ工作
- 权限检查SET_ALARM总是返回PERMISSION_DENIED而不询问用户在Android Studio中的权限,Kotlin
- UNRESOLVED_REFERENCE未解决的参考:isInitialized
- 我应该为Android Studio 3.0 Canary 1使用哪些kotlin版本?
- 如何在Kotlin中使用一个叫做“val()”的函数? /扩展外部JS类
- 伴随对象之外的访问方法 – Kotlin
- 在Android Studio中,如何更改Kotlin命名约定?
- Kotlin函数类型而不是函数接口lambda