2

重複の可能性:
マップ操作でのタプルのアンパック

次の Map[Int,Double] があるとします。

scala> map
res19: scala.collection.immutable.Map[Int,Double] = Map(1 -> 1.1, 2 -> 2.2)

次の foldLeft を実行できます。

scala> map.foldLeft("A")((initVal,x:(Int,Double)) => initVal + x._1)
res20: java.lang.String = A12

しかし、タプルの値を名前付き変数に割り当てる方法が見つかりません。

scala> map.foldLeft("A")((init,x:(a:Int,b:Double)) => init + x.a)
<console>:1: error: ')' expected but ':' found.
   map.foldLeft("A")((init,x:(a:Int,b:Double)) => init + x.a)
                               ^

これもできますか?

4

1 に答える 1

7

ケースを使用できます

map.foldLeft("A") {case (init, (a,b)) => init + a}
于 2012-10-16T23:33:17.913 に答える