小编ajp*_*olt的帖子

Kotlin当大范围语句冻结时给出可以为空的Int

我正在使用一个when语句来检查变量是否在很多相当大的范围内.

为了简单起见,我的代码看起来像:

val lowRange = Int.MIN_VALUE..0
val mediumRange = 1..999_999
//...

val valToCheck = 1_000_000

when (valToCheck) {
    in lowRange -> { doSomething() }
    in mediumRange -> { doSomethingElse() }
    //...
    else -> { handleTooHighOrNull() }
}
Run Code Online (Sandbox Code Playgroud)

这很好用; 但是,当我使valToCheck可以为空时:

val lowRange = Int.MIN_VALUE..0
val mediumRange = 1..999_999
//...

val valToCheck = if(someCondition) { 1_000_000 } else { null }

when (valToCheck) {
    in lowRange -> { doSomething() }
    in mediumRange -> { doSomethingElse() }
    //...
    else -> { …
Run Code Online (Sandbox Code Playgroud)

android kotlin

3
推荐指数
1
解决办法
86
查看次数

标签 统计

android ×1

kotlin ×1