gpt4 book ai didi

scala - 在 Scala 中解构复合元组

转载 作者:行者123 更新时间:2023-12-02 16:17:48 24 4
gpt4 key购买 nike

我有一个返回一个元组的函数,其中一项也是一个元组。

def foo: (Any, (Any, Any))

实际类型并不是真正的Any,但这是实际代码的简化(因此,为了解决这个问题,我将其称为复合元组)。

现在我像下面这样解构这个元组,希望用a1,a2,a3进行计算。

val (a1, bar) = foo
val (a2, a3) = bar

有一个衬里可以做到这一点吗?

最佳答案

当然!您可以用同样的方式进行模式匹配。

def foo: (Any, (Any, Any)) = (1, (2, 3))

scala> val (a1, (a2, a3)) = foo
a1: Any = 1
a2: Any = 2
a3: Any = 3

这是可行的,因为您有一个 Tuple2[Any, Tuple2[Any, Any]],并且 Tuple2 定义了一个 unapply 方法允许发生这种模式匹配。

关于scala - 在 Scala 中解构复合元组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29303046/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com