1. ホーム
  2. scala

[解決済み] Map操作におけるタプルのアンパッキング

2023-05-25 12:06:59

質問

リスト、シーケンス、タプルのイテレータをよく使うのですが、以下のようなことをしたいです。

val arrayOfTuples = List((1, "Two"), (3, "Four"))
arrayOfTuples.map { (e1: Int, e2: String) => e1.toString + e2 }

しかし、コンパイラはこの構文に賛成してくれないようです。 代わりに、私は書いてしまうのです。

arrayOfTuples.map { 
    t => 
    val e1 = t._1
    val e2 = t._2
    e1.toString + e2 
}

というのは馬鹿馬鹿しいです。 どうやったらこれを回避できるのでしょうか?

どのように解決するのですか?

回避策としては case :

arrayOfTuples map {case (e1: Int, e2: String) => e1.toString + e2}