我在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
为什么?
这不是一个有效的循环声明吗?
答案 0 :(得分:3)
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)))
}