【发布时间】:2015-11-02 16:02:42
【问题描述】:
我创建了以下函数:
def mapToPers(inTuple: (String, String, String),
v: ((Double, Double, Double, Double, Double),
Map[Double,
(Double, Double, Double, Double, Double)])) = {
val (prod: String, market: String, week: String) = inTuple
val result = for (cumePeriod <- cumePeriods) yield {
val (per, weekList) = cumePeriod
if (weekList.contains(week)) ((prod, market, per), v)
}
result
}
当我调用它时,它会给出类型不匹配的错误:
描述资源路径位置类型类型不匹配;成立 : ((字符串,字符串,字符串),((双,双,双,双,双), 地图[双,(双,双,双,双,双)]))=> scala.collection.immutable.Iterable[Any] 必需:(((String, String, String), ((Double, Double, Double, Double, Double), 地图[双,(双,双,双,双,双)])))=> TraversableOnce[?]
【问题讨论】:
-
请问
println(inTuple)和println(cumePeriods)的输出是什么。还有v是从哪里来的? -
cumePeriods 的类型是什么?
-
与其创建如此疯狂的元组,不如为每个元组创建单独的
case class。更容易修复/调查错误。
标签: scala