2013-05-01 50 views
1

好了,所以這是我的情景:爲什麼我無法使用地圖的值而無需使用臨時變量?

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]) 

但是每次我這樣做,我想擴大我的名單是一個拖動! 我做錯了什麼,或者這是一個很棒的功能?

Richard

回答

1

好問題! +在列表上是串接不插入,因此您可以鍵入以下內容以獲得所需的效果:

g[1] += [2]; 
相關問題