2009-06-19 129 views
1

我正在經歷(使用Squeak)Ron Jeffries的Discovering Better Code: Bowling for Smalltalk Series,我無法通過third文章。用數組初始化一個對象

正在創建一個新的類(稱爲Frame),它將構造函數中的數組作爲參數。

Frame class>>new: anArray 
    ^self new setRolls: anArray 

Frame>>setRolls: anArray 
    rolls := anArray 

當我嘗試在一個簡單的測試運行此:

testFrame 
    | frame rolls | 
    rolls := Array with: 5 with: 4. 
    frame := Frame new: rolls. 

我得到以下錯誤:

alt text http://files.getdropbox.com/u/120566/junk/error.png

我應該如何修改#NEW消息是能夠用數組初始化Frame對象?

回答

3

我想你添加新的方法失敗:正確的框架類。你確定你把它放在類一側(框架類),而不是在實例一側(框架)?要做到這一點,請在添加新的方法之前點擊「班級」按鈕。

0

你真的不想在這裏重寫new:new:傳統上被保留爲「創建一個這種整數大小的項目」,它並沒有讓我感到驚訝,它炸燬了你。

您想要的構造函數的傳統名稱是fromArray:,或者甚至可能是fromCollection:,這可能會按照您的意願工作。