[ruby-list:479] Re: bug? and question
From:
Date:
1996-09-02 08:48:56 UTC
List:
ruby-list #479
けいじゅ@SHLジャパンです. In [ruby-list :00477 ] the message: "[ruby-list:477] Re: bug? and question ", on Sep/02 17:09(JST) matz@caelum.co.jp (Yukihiro Matsumoto) writes: >|3. next >|nextがデフォルトでプライベートになります. > >これはそういうものです.nextは制御構造ですから,再定義するの >はお勧めしません. そういえばそうでしたね. 失礼しました. (_ _;;; >つまり,スーパークラスで定義されているクラスをオーバーライド >する時には元のクラスの属性を引き継ぎます.nextがprivateとし >て定義されていますから,再定義した場合もprivateです. >変更したい時には明示的に変更してください. 分かりました. >|5. 特異メソッド中のinclude > >特定のオブジェクトにモジュールの機能を追加したい時にはextend >を使ってください. こんな関数があったんですね. お手数かけてすいません. >rubyの場合インクルードは名前空間だけでなく,クラスの性質その >ものを変えてしまうので,そういう機能は存在できないはずです. 確かにクラスの一部(1つの関数)だけインクルードできたりすると変な動きを しそうですね. これからが本題ですが: >それとKernel#typeは次のバージョンからそのオブジェクトの「ク >ラス名」を返すようになります.非互換性がありますが,必要なら >ば > > eval(obj.type) > >に置き換えればほとんどの場合大丈夫でしょう. クラスに関するAPIを充実して欲しいのです. いま, Structを動的に生成して複数のStructのインスタンスを1つのクラスで 取り扱おうと思っているのですが, 細かいところでできないことがあって困っ ています. 例えば, Structに登録してあるメンバ名やメンバの数を取り出せる 関数が欲しいです. 先の, Structの話しは別として, rubyは動的に型を取り扱える言語なのだから, そういうmetaレベルプログラムのサポートがあっても良いと思いますが, いか がでしょう? __ ..........................................石塚 圭樹@SHLジャパン(株)... ------------->アドレス変わりました!! e-mail: keiju@shljapan.co.jp <----