为什么以下scala代码中存在语法错误?

时间:2014-10-26 18:47:17

标签: scala syntax-error scala-2.11

 def sortAndCountInv[T](vec: Vector[T]): (Int, Vector[T]) = {
  val n = vec.length
  if (n == 1) {
    (0, vec)
  } 
  else {
    val (left, right) = vec.splitAt(n / 2)
    val (leftInversions, sortedLeft) = sortAndCountInv(left)
    val (rightInversions, sortedRight) = sortAndCountInv(right)
    val (splitInversions, sortedArray) = countSplitInvAndMerge(left, right)
    (leftInversions + rightInversions + splitInversions, sortedArray)
   }
 }

此代码用于计算向量中的反转次数, 当我尝试编译它时,Scala IDE for Eclipse给出了以下错误:illegal start of simple expression,对于行val (left, right) ...

为什么会这样?

2 个答案:

答案 0 :(得分:0)

缺少一个最后的结束支撑。通常,当代码不正确时,IDE中会出现“陈旧”错误;如果有疑问,最好只查看命令行编译中的第一个错误(maven或类似)。

答案 1 :(得分:0)

如果它适用于REPL,这将是一个IDE错误。尝试使用Scala插件的IDEA社区。我发现它非常好,在理解一些复杂的结构时仍然存在一些问题。