有人可以解释最好的方式来解决以下, 相当好奇的类型错误。假设我创建元组的列表,像这样:斯卡拉地图/类型实例
scala> val ys = List((1,2), (3,4), (5,6))
ys: List[(Int, Int)] = List((1,2), (3,4), (5,6))
现在,如果我想这映射到表(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)
^
任何线索?我知道我可以用它来理解
scala> for ((a, b) <- ys) yield a + b
res1: List[Int] = List(3, 7, 11)
但是在这种设置中破解理解感觉不对。谢谢!
获得额外奖励积分可以降低这些Int类型归属! – 2012-04-10 02:55:29
@亚当,你打败了我:-) – dhg 2012-04-10 02:56:11
值得注意的是,使用“case”语句的解决方案是提供一个局部函数作为映射的参数,这就是为什么它能够立即取消应用该对。部分函数可以提供而不是常规函数的原因是部分函数扩展了函数。 – jwinder 2012-04-10 03:08:29