[ruby-list:487] Re: meta-level features(Re: bug? and question)
From:
Date:
1996-09-04 06:34:41 UTC
List:
ruby-list #487
けいじゅ@SHLジャパンです. In [ruby-list :00480 ] the message: "[ruby-list:480] meta-level features(Re: bug? and question) ", on Sep/02 17:57(JST) matz@caelum.co.jp (Yukihiro Matsumoto) writes: >ストラクトのメンバ名やメンバ数が欲しいんですね.分かりました. >こういう感じでどうでしょう. > > Struct.members > Struct#members > >で,ストラクトのメンバの配列が帰ります.メンバ名はSymbolです >から,文字列にする時には id2name を実行してください. In [ruby-list :00482 ] the message: "[ruby-list:482] Re: meta-level features(Re: bug? and question) ", on Sep/02 18:09(JST) matz@caelum.co.jp (Yukihiro Matsumoto) writes: > >作ってみたら使いにくかったので,文字列にします. ストラクトであれば, このAPIで良いのですが... ストラクトもクラスの一種 なんですよね? >Cレベルではかなりのことができるようになっているので,要は >rubyからアクセスできるようにすれば良いだけのことです.今まで >ニーズが無かったので設計しませんでしたが,リクエストがあれば >喜んで導入します. 将来デバッガ/ブラウザを作る時にも訳に立ちますよきっと. >具体的にはどのような機能が欲しいですか? 欲しいかといわれると, 今は特に必要としていないので... あれば良いと思う 機能で思いついたものを列挙します. rubyは特異メソッドがあるので難しいのですが... 確か, オブジェクト単位で モジュールをインクルード(エクテンド)できましたよね? まさか, 特異スーパ クラスというのはないですよね? objectからクラスを得る関数. objectからモジュールを得る関数 objectから特異メソッドを含むメソッドを得る関数 objectからメンバを得る関数 モジュールとメソッドは特異モジュールと特異メソッドを得るだけでも良いか も知れません. クラスから, クラス名を得る関数 クラスから, スーパクラスを得る関数. クラスから, モジュールを得る関数 クラスから, メソッドを得る関数 クラスから, メンバを得る関数. メソッド, メンバはアクセス権があるので, その情報を取り扱えるように文字 列とかではなくて, Member/Methodなどのインスタンスである方がよいと思い ます. メンバから, 名前を得る関数 メンバから, アクセス権を得る関数 メンバから, アクセスメソッドを得る関数 メンバから, 所属のクラスを得る メソッドから, 名前を得る関数 メソッドから, アクセス権を得る関数 メソッドから, 所属のクラス/オブジェクトを得る あと, メンバに値を設定する関数やメソッドを呼び出すが必要ですが, evalを 使えばできるのでいらないですかね... __ ..........................................石塚 圭樹@SHLジャパン(株)... ------------->アドレス変わりました!! e-mail: keiju@shljapan.co.jp <----