[Squeak-ja: 3891] Re: プログラミングの質問です

Tomohiro Oda tomohiro @ sra.co.jp
2008年 5月 27日 (火) 09:54:01 JST


おだです。

> ActiveWorld submorphs do: [:each |
>     [each isKindOf: クラス] ifTrue: [each 特定の処理]].

たぶん、
ActiveWorld submorphs do: [:each |
    (each isKindOf: クラス) ifTrue: [each 特定の処理]].
ですね。

> isKindOf:は指定したクラスのサブクラスも含むので、そのクラスのインスタン 
> スのみにしたいときは、代わりにisMemberOf:を使います。

クラス名などを決め打ちしたくない場合には、
音を出すメッセージセレクタ名をmakeNoiseとすると、

ActiveWorld submorphsDo: [:each |
     (each respondsTo: #makeNoise) ifTrue: [each makeNoise]].

とすると、makeNoiseできるオブジェクトのみがmakeNoiseします。
(変な日本語ですね :-)
---
おだ


Squeak-ja メーリングリストの案内