2013-07-22 40 views
0

我寫了下面的方法來獲取對象的所有插槽名稱使用局部變量(不和大堂的插槽李建華,伍妍):不能在方法

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 

爲什麼?

回答

1

您的代碼工作發佈我把它作爲一個文件運行。我可以通過添加一些明確的分號讓它在REPL中工作:

Object allSlotNames := method(
    result := list(); 
    object := self; 
    while(object != Lobby, 
     result appendSeq(object slotNames); 
     object := object proto; 
    ); 
    result; 
)