无法将元素添加到列表中

时间:2013-08-29 11:30:28

标签: scala

我有这个数据结构:

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

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

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

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

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

index = (p, Nil) :: index

我该如何克服这个问题?

感谢。

2 个答案:

答案 0 :(得分:2)

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

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

Scala API Tuple2

看到_1_2val s

答案 1 :(得分:1)

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

您可以使用MutableListMap