1

->演算子の (数学的な意味での) 反射である便利なエクストラクタはありますか?

たとえば、これは機能します:

scala> val y = 1 -> 2 -> 3
y: ((Int, Int), Int) = ((1,2),3)

scala> y match { case ((a,b),c) => s"Values are : $a, $b, and $c" }
res0: String = Values are : 1, 2, and 3

しかし、これはしません:

scala> y match { case a -> b -> c => s"Values are : $a, $b, and $c" }
<console>:9: error: not found: value ->
              y match { case a -> b -> c => s"Values are : $a, $b, and $c" }
                                    ^
<console>:9: error: not found: value a
              y match { case a -> b -> c => s"Values are : $a, $b, and $c" }
                                                            ^

ネストされたタプルが多数ある場合に、これがどのように役立つかがわかります。ご参考までに、ネストされたタプルは外部ライブラリによって生成されるため、自分で「フラット化」することはできません。

4

1 に答える 1

0

次に試す

scala> y match { case ((z01,z02),z2) => println(s"$z01 -> $z02 -> $z2") }
1 -> 2 -> 3

scala>
于 2015-11-18T11:14:12.923 に答える