1

我有这个数据结构:

var index : List[(Int, List[Int])] = Nil

然后,在某个时候,我想在我的索引中添加一些元素。我尝试这样做:

index(position)._2 = new_elem :: index(position)._2

但是编译器抱怨我正在做一个reassignment to val.

如果有帮助,我会通过以下代码行在索引中创建一个新位置:

index = (p, Nil) :: index

我该如何克服这个问题?

谢谢。

4

2 回答 2

2

您不能重新分配元组的一部分,只能重新分配整个内容。尝试:

index(position) = (index(position)._1, new_elem :: index(position)._2)

Scala API 元组2

看到那个_1并且_2vals

于 2013-08-29T11:42:21.297 回答
1

您的问题:索引是一个变量(并且可以更改),但 List 是一个不可变的数据结构,因此只能更改整个列表。

您可以使用MutableListMap

于 2013-08-29T11:44:07.610 回答