Smalltalk (Pharo) 方法
Smalltalk (Pharo) methods
我正在尝试学习 Smalltalk (Pharo),但由于可用的文档不多,我想寻求一些帮助。
我有两个 classes,CarRental 和 Car,还有一个测试 class,CarRentalTest。
现在,支持租车服务有固定数量的汽车。
| carRental |
carRental := CarRental new.
carRental
addCar: Car panda;
addCar: Car panda;
addCar: Car tesla.
self assert: carRental totalCars size = 3
但是,我的 addCar 方法是红色的,我该如何解决?
有很多可用于 pharo 的文档:
这里有一些提示:
- http://books.pharo.org(我建议从 "Pharo by Example" 开始)
- http://mooc.pharo.org
- 这个优秀的列表:https://www.youtube.com/watch?v=0xF4fnGaE2w&list=PLqbtQ7OkSta0ULYAd7Qdxof851ybh-m(基于旧版本的 Pharo,但一切都适用)。
现在,关于你的问题,很难有答案,这取决于很多事情,例如:容器是 Set 还是 OrderedCollection? Car panda
回答了什么? Car 的新实例还是始终相同?
你的方法 addCar:
是红色的(注意末尾的冒号),因为你还没有定义它。那就记下来吧:
class CarRental
必须有一个实例变量来保存它的所有汽车。假设我们将其命名为 cars
.
在initialize
方法中(实例端)我们需要做如下操作
CarRental >> initialize
super initialize.
cars := OrderedCollection new.
现在,如果我们创建一个 CarRental
的新实例,它将在其 cars
ivar 中有一个空的 OrderedCollection
。
现在我们可以像这样添加addCar:
方法
CarRental >> addCar: aCar
cars add: aCar
最后,确保你有这样的东西
CarRental >> totalCars
^cars size
检查您的代码并继续尝试!
我正在尝试学习 Smalltalk (Pharo),但由于可用的文档不多,我想寻求一些帮助。 我有两个 classes,CarRental 和 Car,还有一个测试 class,CarRentalTest。 现在,支持租车服务有固定数量的汽车。
| carRental |
carRental := CarRental new.
carRental
addCar: Car panda;
addCar: Car panda;
addCar: Car tesla.
self assert: carRental totalCars size = 3
但是,我的 addCar 方法是红色的,我该如何解决?
有很多可用于 pharo 的文档:
这里有一些提示:
- http://books.pharo.org(我建议从 "Pharo by Example" 开始)
- http://mooc.pharo.org
- 这个优秀的列表:https://www.youtube.com/watch?v=0xF4fnGaE2w&list=PLqbtQ7OkSta0ULYAd7Qdxof851ybh-m(基于旧版本的 Pharo,但一切都适用)。
现在,关于你的问题,很难有答案,这取决于很多事情,例如:容器是 Set 还是 OrderedCollection? Car panda
回答了什么? Car 的新实例还是始终相同?
你的方法 addCar:
是红色的(注意末尾的冒号),因为你还没有定义它。那就记下来吧:
class CarRental
必须有一个实例变量来保存它的所有汽车。假设我们将其命名为 cars
.
在initialize
方法中(实例端)我们需要做如下操作
CarRental >> initialize
super initialize.
cars := OrderedCollection new.
现在,如果我们创建一个 CarRental
的新实例,它将在其 cars
ivar 中有一个空的 OrderedCollection
。
现在我们可以像这样添加addCar:
方法
CarRental >> addCar: aCar
cars add: aCar
最后,确保你有这样的东西
CarRental >> totalCars
^cars size
检查您的代码并继续尝试!