我想用两个整数来做这个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!")
}
}