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)
有人可以解释这背后的基本原理以及我的语法有什么问题吗?试图告诉我什么是必需的类型签名?
Product2.productIterator返回Iterator[Any],所以列表的实际类型是List[Any].这就是你的map功能期待的原因Any => ?.
http://www.scala-lang.org/api/current/index.html#scala.Product2