2

を使用してpharoいます。変数を持つクラスと、設定するクラス側メソッドがCarありますspeedwithSpeed: aSpeedspeed := aSpeed.

私は遊び場で次のテストを試みています。

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

今、私はcar内部carsコレクションを持っています。

speed = 20次のコードを試している車を入手したいのですが、エラーが発生します。

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

何がうまくいかないのですか?

4

2 に答える 2

4

Carのアクセサがあるとすればspeed、簡単に実行できます

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

これにより、 speed を持つすべての車が取得されます20。1つだけが必要な場合は、使用する必要がありますdetect:

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

インスタンス変数 (ここではspeed) のアクセサーは通常次のようになります

Car>>speed
    ^ speed

Car>>speed: anObject
    speed := anObject.
于 2015-05-19T09:00:35.747 に答える