[SML 7552] Re: 第7回Smalltalk勉強会@京都

toshihiko ichida dogatana @ gaia.eonet.ne.jp
2009年 5月 16日 (土) 23:20:49 JST


いちだです。

青木さん、濱崎さん、説明ありがとうございます。
少し理解が進んだ気がします。

AOKI Atsushi さんは書きました:
> 市田さんからの質問への応答には、レガシィソフトウェア問題を話
> さなければなりません。

> 実はこれに「じゅん for Smalltalk」も乗っかっちゃったわけです。
> GeneralNameSpaceImport path: #('Jun' '*')
> これは、Junという名前空間の下の階層のすべてを運び入れること
> を表現したオブジェクトとなります。

> 以上になります。明解となりましたでしょうか?市田さん。ある意
> 味で最内スコープ束縛方式をやぶる禁じ手ですので、通常はやって
> はいけませんよ。:-)

なるほど。下の階層*すべて*ですか。。。
勉強会での説明はこのことだたったのですね。

濱崎治 さんは書きました:
> Junが特別なことをしているのは、青木さんからお答えがありましたが、
> それ以外に、Workspaceで実行していらっしゃるのなら、Workspaceにも
> 仕掛けがあって、Namespaceの名前を前置しなくても全てのNamespaceに
> ある共有変数を参照可能です。

さっき、WorkspaceでMyNamaespace.MySubNameSpaceの階層を作り、
それぞれのクラスをNamespaceの階層指定なしに new したところ、何ら
問題なく生成できたのは、この仕掛けですね。

1) Smalltalk.MyNameSpace defineClass: #MyNameSpaceClass
2) MyNameSpace.MySubNameSpace defineClass: #MySubNameSpaceClass

調子にのって異なる階層に同じ名前のクラス

3) MyNameSpace.MySubNameSpace defineClass: #MyNameSpaceClass

を定義してやってnew すると、さすがに
"Replace MyNameSpaceClass with...?" と聞かれました。

--
いちだ


SML メーリングリストの案内