誰かが次のようなことを回避する最良の方法を説明できますか? 不思議なタイプのエラーです。私はそうのようなタプルのリストを作成するとします。スカラーマップ/タイプのインスタンス化
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型の帰属が削除されます! –
@Adam、あなたはそれを私に打ち明けました:-) – dhg
"case"ステートメントを使った解決策は、マップの引数として部分関数を提供しているので、すぐにペアを解除することができます。そして、正規関数の代わりに部分関数を提供できる理由は、部分関数が関数を拡張しているためです。 – jwinder