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

Kazuhiro ABE abee @ squeakland.jp
2008年 5月 26日 (月) 19:02:41 JST


こんにちは、阿部です。
これはSqueak Etoysではなく、Smalltalkの話ですね。

すべてのMorphは入れ子構造を持つことができ、submorphsというメッセージを送ることで子集合にアクセスできます。
ActiveWorldはPasteUpMorphのインスタンスですから、これも例外ではありません。以下の式を評価してみてください。

ActiveWorld submorphs.

この戻り値はワールドに表示されているすべてのMorphの集合です。
もし、この中の特定のクラスのインスタンスにのみ特定の処理をさせたい場合は以下のようにします。

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

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

//abee
--
阿部 和広  EMAIL abee @ squeakland.jp
-------------- next part --------------
HTMLの添付ファイルを保管しました...
URL: http://www.smalltalk.jp/pipermail/squeak-ja/attachments/20080526/fe8ee8fe/attachment-0001.html


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