Kotlin:使用= when()返回值的函数

时间:2019-06-04 11:21:24

标签: kotlin

我最近发现了一个仅会根据输入返回值的函数的漂亮语法:

fun getItem(value: Int): String = when (getPosition(value)) {
   0 -> "Zero"
   1 -> "One"
   2 -> "Two"
   else -> "Other"
}

是否还可以使用范围或<>运算符?

我尝试做类似的事情:

>0 -> "Positive"

哪些不被接受,

0-10 -> "Postively small"
我认为

(自然地)被视为“ 0减去10”。

1 个答案:

答案 0 :(得分:6)

您可以执行其中一些操作,但不能以您描述的方式进行。例如,您可以像这样使用isin==

val x = 10

when (x) {
    in 0..10 -> 1
    10 -> 2
    is Int -> 3
    else -> 4
}

,但是您不能使用比较(<>)。 here说明了其原因。您可以使用任意表达式,但是<>不能被重载,因此您不能执行greaterThan(x)

如果您缺少Kotlin的某些功能,则可以随时打开KEEP,以便在某个时候实现它!