scala中嵌套的元组提取器 - >

时间:2015-11-18 11:07:13

标签: scala tuples extractor

是否有方便的提取器是->运算符的反射(在数学意义上)?

例如,这有效:

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" }
                                                            ^

当你有许多嵌套元组时,你可以看到它是如何有用的。如果您想知道,我的嵌套元组是由外部库生成的,所以我不能只是“扁平化”。我自己。

1 个答案:

答案 0 :(得分:0)

尝试下一步

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

scala>