Scala 循环简单模式的非法开始

标签 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

这是为什么?

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

最佳答案

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/

相关文章:

scala - 可以强制存在量化类型变量只有一个类型吗?

arrays - Scala 搜索嵌套数组

scala - `toString`中的 `scala.Enumeration$Value`是如何实现的?

scala - 我应该创建特征来表示模型的枚举值吗?

list - Scala:按顺序从列表元素创建元组列表

java - 立即将 Spark 中的 Json 字符串索引到 Elasticsearch

scala - 如何将Avro的GenericData.Record的RDD转换为DataFrame?

scala - 如何设置 IntelliJ + Scala + specs + sbt 项目?

scala - 如何获取不可变库的子类的对象(最佳实践)?

scala - 将高阶函数转换为匿名函数的正确 Scala 语法?