Scala无法映射双打列表

Dea*_*ado 1 functional-programming scala

我有一个带有属性的case类location,它是一个包含双精度的tuple2实例.

我首先使用以下内容将其转换为列表:

testPlace.location.productIterator.toList
Run Code Online (Sandbox Code Playgroud)

这会产生一个两元素列表,

List(78.0342, -139.2234)
Run Code Online (Sandbox Code Playgroud)

在此列表中运行简单映射似乎失败,引发以下编译错误:

loc.map((x:Double) => x + 10.0)

 type mismatch;
   found   : Double => Double
   required: Any => ?
          loc.map( (x:Double) => x + 10.0 )
Run Code Online (Sandbox Code Playgroud)

有人可以解释这背后的基本原理以及我的语法有什么问题吗?试图告诉我什么是必需的类型签名?

vpt*_*ron 6

Product2.productIterator返回Iterator[Any],所以列表的实际类型是List[Any].这就是你的map功能期待的原因Any => ?.

http://www.scala-lang.org/api/current/index.html#scala.Product2