我有这个数据结构:
var index : List[(Int, List[Int])] = Nil
然后,在某些时候我想在索引中添加一些元素。我试着这样做:
index(position)._2 = new_elem :: index(position)._2
但是编译器抱怨我正在做reassignment to val
。
如果它可以提供帮助,我可以通过以下代码行在索引中创建一个新位置:
index = (p, Nil) :: index
我该如何克服这个问题?
感谢。
答案 0 :(得分:2)
你不能重新分配一个元组的一部分,只能重新分配整个部分。尝试:
index(position) = (index(position)._1, new_elem :: index(position)._2)
看到_1
和_2
是val
s
答案 1 :(得分:1)
您的问题:索引是一个变量(可以更改),但List是一个不可变的数据结构,因此只能更改整个列表。
您可以使用MutableList或Map。