这是我写入深度复制两个linkedlist对象的smalltalk代码。但是当我这样做时,Small talk解释器会引发一个错误,指出:未处理的异常:消息未理解:nextlink。
list1 add:2.
list2 :=list1 dcopy.
list1 ==list2.
请告诉我我的代码有什么问题。
答案 0 :(得分:1)
这是VisualWorks。 LinkedLists是用于内部系统使用的集合,不适用于一般用途。添加到LinkedLists中的项必须是Link的子类(或实现nextLink和nextLink :)。您无法将SmallInteger添加到链接列表中。你可以这样做:
LinkedList new
add: (LinkValue value: 5);
add: (LinkValue value: 7)
我们通常不会在Smalltalk中使用链接列表。我们通常使用OrderedCollection。如果您确实需要链接列表,请添加作为链接子类的元素。