当用两个变量kotlin声明时

时间:2018-06-08 20:55:19

标签: kotlin

所以我想用两个整数来表达这个。我试着这样做:

when(row && column) {
     in 0..2 -> end = true;
     else -> {
         end = false;
         println("Invalid move!")
     }
}

但它没有用。 有没有办法做到这一点?显然有许多其他方法可以做到这一点,但我希望我的代码清晰可读,这对完成它非常有帮助。

2 个答案:

答案 0 :(得分:6)

不,这不可能。特别是,int && int没有有效的语法。

或者,您可以像这样表达此代码:

end = if (setOf(row, column).all { it in 0..2 })
    true
else
    false.also { println("Invalid move!") }

我不喜欢用if替换when这样的基本案例,但这是一个品味问题。

答案 1 :(得分:5)

为什么不采用这种方式?

when {
    row in 0..2 && column in 0..2-> end = true;
    else -> {
        end = false;
        println("Invalid move!")
    }
}