我最近发现了一个仅根据输入返回值的函数的良好语法:
fun getItem(value: Int): String = when (getPosition(value)) {
0 -> "Zero"
1 -> "One"
2 -> "Two"
else -> "Other"
}
Run Code Online (Sandbox Code Playgroud)
是否还可以使用范围或<>运算符?
我试过做类似的事情:
>0 -> "Positive"
Run Code Online (Sandbox Code Playgroud)
哪个不被接受,并且
0-10 -> "Postively small"
Run Code Online (Sandbox Code Playgroud)
我认为(自然地)被视为“ 0减去10”。
您可以执行其中一些操作,但不能以您描述的方式进行。例如,您可以使用is
,in
并且==
这样:
val x = 10
when (x) {
in 0..10 -> 1
10 -> 2
is Int -> 3
else -> 4
}
Run Code Online (Sandbox Code Playgroud)
但您不能使用比较(<
,>
)。这样做的原因解释这里。您可以使用任意表达式,但<
并>
不能超载,所以你不能这样做greaterThan(x)
。
如果您缺少Kotlin的某些功能,则可以随时打开KEEP,以便在某个时候实现它!
归档时间: |
|
查看次数: |
51 次 |
最近记录: |