gpt4 book ai didi

kotlin - 为什么 Kotlin 内联函数参数不能为空

转载 作者:行者123 更新时间:2023-12-02 13:03:25 24 4
gpt4 key购买 nike

enter image description here

inline fun <T, R> isNullObject(value: T?, notNullBlock: (T) -> R, isNullBlock: (() -> Unit)? = null) {

if (value != null) {
notNullBlock(value)
} else {
if(isNullBlock != null){
isNullBlock()
}
}
}
尝试写一些高阶函数方便开发,但是报错

最佳答案

我认为这与如何 inline functions有关传递给它的 lambda 是内联的。 inline 修饰符影响函数本身和传递给它的 lambdas:所有这些都将被内联到调用站点中。 Kotlin 似乎不允许使用 可以为空 lambda 。
如果你想要 isNullBlock 的一些默认值参数可以使用空大括号isNullBlock: () -> Unit = {} :

inline fun <T, R> isNullObject(value: T?, notNullBlock: (T) -> R, isNullBlock: () -> Unit = {}) {

if (value != null) {
notNullBlock(value)
} else {
isNullBlock()
}
}

关于kotlin - 为什么 Kotlin 内联函数参数不能为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63479629/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com