我在 Scala 中有以下循环:
for(var i <- 1 to q) {
val Array(a, p, q) = readLine.split(" ").map(_.toInt)
println(a ^ xs(findXorFromRoot(x, rev_binary_encoding(a).reverse, p, q)))
}
但是,在第一行,我得到:
error: illegal start of simple pattern
这是为什么?
这不是一个有效的循环声明吗?
最佳答案
var
保留字在这里没有任何意义。这个for
循环被翻译成一个foreach
语句,它相当于:
(1 to q) foreach { i =>
val Array(a, p, q) = readLine.split(" ").map(_.toInt)
println(a ^ xs(findXorFromRoot(x, rev_binary_encoding(a).reverse, p, q)))
}
所以你应该将代码更改为:
for(i <- 1 to q) {
val Array(a, p, q) = readLine.split(" ").map(_.toInt)
println(a ^ xs(findXorFromRoot(x, rev_binary_encoding(a).reverse, p, q)))
}
关于Scala 循环简单模式的非法开始,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34450673/