我编写了以下方法来获取对象的所有插槽名称(没有Lobby和更高的插槽):
Object allSlotNames := method(
result := list()
object := self
while(object != Lobby,
result appendSeq(object slotNames)
object := object proto
)
result
)
但是当我运行它时会出现错误:
Io> 123 allSlotNames
Exception: Number does not respond to 'object'
---------
Number object Command Line 1
Number allSlotNames Command Line 1
为什么?
答案 0 :(得分:1)
您的代码以发布方式运行我将其作为文件运行。通过添加一些显式分号,我能够在REPL中使用它:
Object allSlotNames := method(
result := list();
object := self;
while(object != Lobby,
result appendSeq(object slotNames);
object := object proto;
);
result;
)