Scala:类型不匹配

时间:2015-04-08 21:14:13

标签: scala

我花了很多时间来弄明白:

rmseList是双打列表

val rmseList = List(Double)

var tempRMSE : Double = 0.0;
for(rmse <- rmseList) {
  val idx = rmseList.indexOf(rmse) + 1
  tempRMSE = rmse
}

当我尝试迭代列表并将当前值分配给temp变量时,我得到以下错误。

[error]  found   : Double.type
[error]  required: Double
[error]       tempRMSE = rmse

1 个答案:

答案 0 :(得分:5)

您可能已将Double的伴随对象放入列表中,而不是实际将双精度放在那里。这是一个例子:

scala> val xs = List(Double)
xs: List[Double.type] = List(object scala.Double)

scala> var d: Double = 0
d: Double = 0.0

scala> for (x <- xs) { d = x }
<console>:10: error: type mismatch;
 found   : Double.type
 required: Double
              for (x <- xs) { d = x }

至于如何你设法将伴侣对象放入而不是Double值,我不知道,因为你没有告诉我们你是如何构建列表的。也许以某种方式使用parens (Double)而不是括号[Double]来指定类型?