gpt4 book ai didi

scala - 在 Scala 中,如何重新分配元组值?

转载 作者:行者123 更新时间:2023-12-03 22:50:35 26 4
gpt4 key购买 nike

我正在尝试执行以下操作

var tuple = (1, "test")
tuple._2 = "new"

然而,这不会编译它提示 val

最佳答案

您不能重新分配元组值。它们是故意不可变的:一旦你创建了一个元组,你就可以确信它永远不会改变。这对于编写正确的代码非常有用!

但是如果你想要一个不同的元组呢?这就是 copy 方法的用武之地:

val tuple = (1, "test")
val another = tuple.copy(_2 = "new")

或者如果您真的想使用 var 来包含元组:
var tuple = (1, "test")
tuple = tuple.copy(_2 = "new")

或者,如果您真的,真的希望您的值单独更改,则可以使用 case 类代替(可能使用隐式转换,以便您可以在需要时获得元组):
case class Doublet[A,B](var _1: A, var _2: B) {}
implicit def doublet_to_tuple[A,B](db: Doublet[A,B]) = (db._1, db._2)
val doublet = Doublet(1, "test")
doublet._2 = "new"

关于scala - 在 Scala 中,如何重新分配元组值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7142838/

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