我需要将可为空的参数传递给仅接受非可为空的对象,但已定义默认值的函数。
目前,我正在使用let:
fun myFun(a:String = "qqq"): Whatever {...}
val myString:String? = getNullableString()
val myFunResult = myString.?let{myFun(it)}?:myFun()
这很冗长,而且当可选参数多时就不可能了。
我需要类似的东西
val myFunResult = myFun(myString?:default)
有没有可行的方法?
最佳答案
您可以允许将可为空的值作为参数传递到函数中,将命名的默认值更改为null
并在函数体内设置实际的默认值:
fun myFun(a: String? = null) {
val a = a ?: DEFAULT_VALUE
// rest of the function
}
val myFunResult = myFun(myString)