私は自分のコードを非常に素朴に読みやすいものにしたいと思っています。
単純なタプルのリストを設定する場合:
scala> val a = List(6, 8, 10)
a: List[Int] = List(6, 8, 10)
scala> val b = a zipWithIndex
b: List[(Int, Int)] = List((6,0), (8,1), (10,2))
リストに map() を実行したいのですが、._1 ._2 構文が少し読みにくいと思います。
scala> val c = b map ( a => if(a._1 > 8) a._1 else a._2 )
c: List[Int] = List(0, 1, 10)
タプルに「名前を付ける」ために、以下を使用しました:
scala> val c = b map ( { case (num, i) => if(num > 8) num else i } )
c: List[Int] = List(0, 1, 10)
2つの質問:
1) タプルのメンバーに名前を付けるより簡潔な方法はありますか?
2) 上記のバージョンではパフォーマンスにかなりの影響がありますか (パフォーマンスが中程度に重要なコードで使用されています)。
ありがとう。
ベストアンサー1
b map Function.tupled((num, i) => if(num > 8) num else i)
パターン マッチングと for 式を回避するので、パフォーマンスは十分に高くなるはずです。case
ただし、通常は、あなたと同じように使用します。