kotlin中的变量和扩展函数



我正在尝试在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
)
}
}

零是强调说:"零不能一个非空的值类型Array<从()→Unit>">

是否有任何方法来解决这个问题,或者我无法在这种情况下使用变量?由于

您似乎试图将varargs参数的默认值设置为null。这是不必要的。可变参数可以接受0个形参,即使没有默认值。

fun Bundle.applyWithUserParameters(vararg functionList: () -> Unit): Bundle = 
Bundle().apply {
for (method in functionList)
method()
FirebaseAnalyticsHelper.clientRepository.getClientData()?.clientID?.let {
putInt(
FirebaseAnalyticsHelper.KEY_USER_ID, it
)
}
}

如此:

someBundle.applyWithUserParameters()