Scala循环非法启动简单模式

时间:2015-12-24 09:45:20

标签: scala

我在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

为什么?

这不是一个有效的循环声明吗?

1 个答案:

答案 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)))
}