これは私にとって論理的ではないようです:
scala> val a = Map((1, "111"), (2, "222"))
a: scala.collection.immutable.Map[Int,String] = Map(1 -> 111, 2 -> 222)
scala> val b = a.map((key, value) => value)
<console>:8: error: wrong number of parameters; expected = 1
val b = a.map((key, value) => value)
^
scala> val c = a.map(x => x._2)
c: scala.collection.immutable.Iterable[String] = List(111, 222)
言えることはわかってるval d = a.map({ case(key, value) => value })
しかし、なぜそれが言えないの a.map((key, value) => value)
ですか?or型の引数は1 つだけです。とはどう違いますか?Tuple2[Int, String]
Pair of Int, String
a.map((key, value) => value)
a.map(x => x._2)
更新:
val myTuple2 = (1, 2)
-- これは 1 つの変数ですよね?
for ( (k, v) <- a ) yield v
--(k, v)
変数も 1 つだけですよね?
map((key, value) => value)
-- 2 つの変数。変。
では、を使用せずに型Tuple2
(またはその他の型)の変数を指定するにはどうすればよいでしょうか?map
case
更新 2:
それの何がいけないの?
Map((1, "111"), (2, "222")).map( ((x,y):Tuple2[Int, String]) => y)
- 違う
Map((1, "111"), (2, "222")).map( ((x):Tuple2[Int, String]) => x._2)
- わかった