我正在经历(使用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对象?
答案 0 :(得分:3)
我猜你没有将new方法添加到Frame类中。你确定你把它放在班级(Frame类)而不是实例侧(Frame)吗?要执行此操作,请在添加新方法之前单击“课程”按钮:。
答案 1 :(得分:0)
你真的不想在这里覆盖new:
。 new:
传统上保留用于“创建这个整数大小的项目”,并且我不会感到惊讶它正在炸毁你。
您想要的构造函数的一个更传统的名称是fromArray:
,或者甚至可能fromCollection:
,它可能已按您的意愿工作。