[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 メーリングリストの案内