我正在使用pharo。我有一个具有Car变量的speed类和设置withSpeed: aSpeed的类边方法speed := aSpeed.

我正在操场上尝试以下测试。

car := Car withSpeed: 20.
cars := OrderedCollection new.
cars add: car.


现在,我在car集合中有一个cars

我想获得具有speed = 20的汽车,我正在尝试以下代码,但出现错误:

result := cars select: [ :each | each withSpeed: 20. ].


知道出了什么问题吗?

最佳答案

鉴于您的Car具有speed的访问器,您只需执行

result := cars select: [ :each | each speed = 20. ].


这样一来,您获得速度20的所有汽车。如果只想要一个,则应使用detect:

myCar := cars detect: [ :each | each speed = 20. ].




实例变量的访问器(此处为speed)通常看起来像

Car>>speed
    ^ speed




Car>>speed: anObject
    speed := anObject.

关于smalltalk - 试图从OrderedCollection中检索元素,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30320263/

10-12 23:26