kotlin 带有两个变量的When语句

qrjkbowd  于 2023-03-03  发布在  Kotlin
关注(0)|答案(3)|浏览(130)

我想用两个整数来写when语句,我试着这样做:

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

但是它不起作用,有什么方法可以做到吗?,显然有很多其他的方法可以做到,但是我希望我的代码清晰可读,这将是非常有帮助的。

wooyq4lh

wooyq4lh1#

为什么不按常规做呢?

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

z4iuyo4d2#

不,这是不可能的。尤其是,int && int是无效语法。
或者,您可以将此代码表示为:

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

我不太喜欢用when来代替if,但这是一个品味的问题。

l3zydbqr

l3zydbqr3#

我相信你可以这样做:

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

相关问题