我正在使用一个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)