当语句有两个变量 kotlin



我想用两个整数来做这个when语句。我尝试这样做:

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

但它没有用。 有什么办法可以做到这一点吗?显然还有许多其他方法可以做到这一点,但我希望我的代码干净且可读,这对实现这一目标非常有帮助。

为什么不以调节的方式进行呢?

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

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

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

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

对于这种基本情况,我不太喜欢用when代替if,但这是一个品味问题。

我相信你可以做这样的事情:

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

最新更新