From: keiju@... (=?ISO-2022-JP?B?GyRCQFBETTc9PHkbKEI=?= ) Date: 1997-08-16T13:23:30+09:00 Subject: [ruby-dev:142] Re: meta programming features けいじゅ@日本ラショナルです. In [ruby-dev :00141 ] the message: "[ruby-dev:141] Re: meta programming features ", on Aug/16 00:59(JST) matz@netlab.co.jp (Yukihiro Matsumoto) writes: >まつもと ゆきひろです >|となりますね... Foo.foo, Bar.fooがFooのメタクラスのコンテキストで定義 >|されたので定数が参照できていただけですね... > >というか,静的なスコープで囲む定数にもアクセスできるからじゃ >ないですかね. ああそうそう. それがいいたかったのでした. 用語が難しい... >|確かに >| eval "def func ..." >|と >| foo.eval "def func..." >|では, だいぶ雰囲気が違う... >でしょ.名前からして違うものとした方が良いのかもしれませんね. そういう手もありますね. でも, そのメソッドを object_evalとすると. foo.object_eval "def func..." は特異メソッドの定義とするんですか? >|eval "def foo.func..."で特異メソッドの定義はできるので, 少なくとも, す >|でにそういう名前の特異メソッドが定義されているかどうかを判断するメソッ >|ドは欲しいかなあ.. > >Class#instance_methodsで調べるとかでは駄目? どうやったらできるのか分かりませんが, 特異クラスを指定しての instance_methodsですか? >やはり特異クラスを強く意識しすぎているのが気に入らないみたい >です.まあ,typeも特異クラスを返さなくなりましたし,モデルと >してはclass << objは「オブジェクトの特異状態を操作するための >(一時的な)仮想的なクラスを参照できるようにしている.特異クラ >スは存在しない」と考えていて下さい. 了解しました. 私もその方がいいんじゃないかと思えてきました. >|objの特異クラスはobjのシングルトンクラスになっているというイメージは間 >|違っているんですね... >まあ,ある意味本来シングルトンであるべきものを無理矢理取り出 >して操作しているわけですから,イメージ狂ってくるのは仕方がな >いですね.でも,禁止する程でもないと思うのですが. まあそうですね. >|こうなってくると特異クラスって何だろう? って思いはじめてきました... 特 >|異クラスはあまり見せない方が良いのかも知れませんね... >ですね.すくなくともtypeでは見せないようにしました. やはり, class<> e-mail: keiju@bc.mbn.or.jp <<---