相关疑难解决方法(0)

仅当所有参数都不为空时,Kotlin调用函数

如果所有(或某些)参数都为null,kotlin中是否有一种方法可以阻止函数调用?例如具有功能:

fun test(a: Int, b: Int) { /* function body here */ }
Run Code Online (Sandbox Code Playgroud)

我希望在参数出现时防止空检查null.例如,对于参数:

val a: Int? = null
val b: Int? = null 
Run Code Online (Sandbox Code Playgroud)

我想替换:

a?.let { b?.let { test(a, b) } }
Run Code Online (Sandbox Code Playgroud)

有:

test(a, b)
Run Code Online (Sandbox Code Playgroud)

我想函数定义语法看起来像这样:

fun test(@PreventNullCall a: Int, @PreventNullCall b: Int)
Run Code Online (Sandbox Code Playgroud)

这相当于:

fun test(a: Int?, b: Int?) {
    if(a == null) {
        return
    }

    if(b == null) {
        return
    }

    // function body here
}
Run Code Online (Sandbox Code Playgroud)

类似的东西(或类似的东西)是否可以减少调用者(可能是函数作者)的冗余代码?

kotlin kotlin-null-safety

11
推荐指数
3
解决办法
3632
查看次数

标签 统计

kotlin ×1

kotlin-null-safety ×1