有人可以解释解决以下相当奇怪的类型错误的最佳方法。假设我创建了一个元组列表,如下所示:
scala> val ys = List((1,2), (3,4), (5,6))
ys: List[(Int, Int)] = List((1,2), (3,4), (5,6))
现在,如果我想将其映射到 List(Int)
scala> ys.map((a: Int, b: Int) => a + b)
<console>:9: error: type mismatch;
found : (Int, Int) => Int
required: ((Int, Int)) => ?
ys.map((a: Int, b: Int) => a + b)
^
有什么线索吗?我知道我可以使用 for 理解
scala> for ((a, b) <- ys) yield a + b
res1: List[Int] = List(3, 7, 11)
但是在这种情况下打破理解感觉是错误的。谢谢!