所以我想用两个整数来表达这个。我试着这样做:
when(row && column) {
in 0..2 -> end = true;
else -> {
end = false;
println("Invalid move!")
}
}
但它没有用。 有没有办法做到这一点?显然有许多其他方法可以做到这一点,但我希望我的代码清晰可读,这对完成它非常有帮助。
答案 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!")
}
}