【发布时间】:2021-09-29 18:15:11
【问题描述】:
我正在尝试在 kotlin 中编写扩展函数。我几乎走到了尽头,但一件简单的事情阻止了我。代码如下:
fun Bundle.applyWithUserParameters(vararg functionList: () -> Unit = null): Bundle = Bundle().apply {
for (method in functionList)
method()
FirebaseAnalyticsHelper.clientRepository.getClientData()?.clientID?.let {
putInt(
FirebaseAnalyticsHelper.KEY_USER_ID, it
)
}
}
null 带有下划线,它说:“Null 不能是非 null 类型的值 Array
有没有办法解决这个问题,或者在这种情况下我根本无法使用可变参数? 谢谢
【问题讨论】:
-
您似乎将 varargs 参数的默认值设置为 null。这没有多大意义。你为什么要这么做?
-
因为在某些情况下我会发送 2,3,4 个函数作为参数,而在某些情况下,我会向 applyWithUserParameters 发送零个参数
-
所以...?为什么这意味着您需要
= null?一个没有默认值的 vararg 本身可以接受 0 个或多个参数。删除= null怎么样? -
你能把它写下来吗?它看起来怎么样?捆。 applyWithUserParameters....?
-
what 看起来如何?
标签: kotlin variadic-functions extension-function