使用嵌套函数过滤压缩数组期间的编译错误

时间:2014-08-27 20:17:07

标签: scala scala-collections scala-2.10

我正在尝试使用嵌套函数过滤压缩数组,但是我遇到了与变量“mergedRow”类型相关的编译错误

以下是我的例子:

ScalaVersion = 2.10.4

val arrayOne : Seq[IndexedSeq[Double]] = Seq.empty
val arrayTow : Seq[IndexedSeq[String]]  = Seq.empty

(this.arrayOne , this.arrayTow).zipped.filter{
  mergedRow : (IndexedSeq[String], IndexedSeq[Double])=>

  // some processing
  true
}

编译错误:

Error:(130, 51) type mismatch;
 found   : ((IndexedSeq[String], IndexedSeq[Double])) => Boolean
 required: (IndexedSeq[String], IndexedSeq[Double]) => Boolean
      mergedRow : (IndexedSeq[String], IndexedSeq[Double])=>
                                              ^

我不知道这个错误的来源,所以我们将不胜感激。

干杯。

1 个答案:

答案 0 :(得分:1)

您错过了case。看起来应该更像这样:

(arrayOne , arrayTwo).zipped.filter{
    case (one, two) =>
       // filter predicate
}

类型参数将产生无结果类型测试警告,因此我省略了它们。如果您愿意,可以将case (one, two)替换为case mergedRow,但对onetwo执行操作比mergedRow._1mergedRow._2更清晰。< / p>