如何为scala中的元组中的Integer赋值?

时间:2016-06-14 13:31:22

标签: scala

如果我输入以下代码,

var x = ("This is driving me nuts!", 38)
x._2 = 58

我收到以下错误。

error: reassignment to val
         x._2 = 58

我该如何解决这个问题?我的意思是,我怎样才能为元组的第二个元素分配一个新值。

2 个答案:

答案 0 :(得分:6)

你不会,因为元组是不可改变的。

相反,创建一个新元组并将其分配给x

x = (x._1, 58)

" Scala方式"做事(最佳实践)是尽可能地保持一切不变。这包括:仅在您有充分理由时才使用var(可变变量);否则,使用val(不可变值)。

答案 1 :(得分:0)

这是一个类似的问题:

In Scala, how can I reassign tuple values?

正如Jesper所述,元组是不可变的,你应该创建一个新元组。我不确定它比他的答案更简洁,但是元组上也有一个复制方法,你可以像使用标准案例类一样使用它。

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