2014-09-19 35 views
1

這是我寫入深層複製兩個鏈表對象的小代碼。但是當我這樣做時,小談會解釋器引發錯誤,指出:未處理的異常:消息未理解:nextlink。在小問題中,LinkedList對象的深層副本給出錯誤

list1 add:2. 
list2 :=list1 dcopy. 
list1 ==list2. 

請告訴我我的代碼有什麼問題。

+0

請告訴我們您使用的方言/環境(大衆,VA,海豚,Newspeak,Pharo,Squeak ...)。另外,請發佈'LinkedList >>#dcopy'的代碼(假設您使用的是)。 – 2014-09-20 07:00:25

回答

1

這是VisualWorks。 LinkedLists是用於內部系統使用的集合,不適用於一般用途。添加到LinkedList中的項目必須從Link中分類(或實現nextLink和nextLink :)。您不能將SmallInteger添加到鏈接列表中。你可以這樣做:

LinkedList new 
    add: (LinkValue value: 5); 
    add: (LinkValue value: 7) 

我們通常不會在Smalltalk中使用鏈表。我們通常使用OrderedCollection代替。如果您確實需要鏈接列表,請添加Link的子類的元素。

+0

非常感謝@大衛·布萊克。但是你的函數有一個小的改變。它是LinkValue值:5。有一個名爲LinkValue的類,它具有設置者設置值的方法。 – sabarish 2014-09-21 15:30:39

+0

更正上面的代碼。 – 2014-09-21 22:13:39