为什么我不能使用map的值而不必使用临时变量?

时间:2013-05-01 12:32:43

标签: rascal

好的,这就是我的情景:

rascal>map[int, list[int]] g = ();
rascal>g += (1:[2]);

这将导致:

rascal>g[1];
list[int]: [2]

到目前为止一切顺利,但现在我想这样做,但它不起作用:

rascal>g[1] += 3;
|stdin:///|(2,1,<1,2>,<1,3>): insert into collection not supported on value and int

所以我不能直接使用g [1]中的值,并且必须使用这样的临时变量:

rascal>lst = g[1];
rascal>lst += 3;
rascal>g[1] = lst;
map[int, list[int]]: (1:[2,3])

但每次我想扩大我的名单时这样做都是拖累! 我做错了什么或者这是一个很棒的功能?

理查德

1 个答案:

答案 0 :(得分:1)

好问题!列表上的+是连接而不是插入,因此您可以键入以下内容以获得所需的效果:

g[1] += [2];