🦍
Scalaのtupledメソッド
引数を二つ取る関数オブジェクトを、tupledというメソッドを使うことで引数にtupleを渡せるように変換できる。
scala> val f = { (x: Int, y: Int) => x + y }
val f: (Int, Int) => Int = $Lambda$1050/0x00000008010ec040@69b37f5c
scala> val t = f.tupled
val t: ((Int, Int)) => Int = scala.Function2$$Lambda$393/0x0000000800de9040@5b5b9521
scala> val arg = (1, 2)
val arg: (Int, Int) = (1,2)
scala> val r = t(arg)
val r: Int = 3
わざわざarg._1
やarg._2
と書かずに済む。
Discussion