From: keiju@... (=?ISO-2022-JP?B?GyRCQFBETTc9PHkbKEI=?= ) Date: 1997-08-29T14:52:06+09:00 Subject: [ruby-dev:328] Re: virtual class [Re: [Q] [Re: [BUG] method index] ] けいじゅ@日本ラショナルソフトウェアです. In [ruby-dev :00327 ] the message: "[ruby-dev:327] Re: virtual class [Re: [Q] [Re: [BUG] method index] ] ", on Aug/29 14:35(JST) matz@netlab.co.jp (Yukihiro Matsumoto) writes: >まつもと ゆきひろです >|そうですねえ... まず定数は仮想クラスとその唯一のインスタンスで共有しま >|すので, 常に存在していますよね. >| >|仮想クラスのインスタンス変数が, 常に同じものになるというのは, 何か状態 >|を保存する特別な実体がいることを意味しますので, 定義としてはその場限り >|である(未定義)として良いんじゃないでしょうか? > >つまり同じオブジェクトに対して2回以上仮想クラスを生成したと >して,前回設定した定数やインスタンス変数が残っていることは保 >証しない(現在の実装では残っているけど)ということで良いですか? いえいえ. インスタンス変数は保証しないが, クラス定数は保証して欲しいん ですけど... インスタンス変数はclass<<の中でしかアクセスできないので, 別のclass<<で 値が変わっても変ではないですが(変数の連続性がない), クラス定数はインス タンスから常にアクセスできますので(変数の連続性がある), class<<毎に値 が変わるってのも変ですよね? >|# 結局使うなってことですけど... > >まあ,同じ仮想クラス定義の範囲内なら問題なく使えるわけですか >ら,使うなとまでは言ってないでしょう,多分. そこまでするなら, 通常のクラスとして実装してあげればいいんですからね. きっと. >|これで十分です. MLF.rb をつくって下さい. >lib/metap.rbとしておきましょう. はい. >|# ただ, このまま実装すると ruby -w でワーニングが出るのが気にならない >|# でもないですが... > > $vsave, $VERBOSE = $VERBOSE, FALSE > .. > $VERBOSE = $vsave > >で囲んでおきましょう.jcode.rbも. おお. こんな技が... 私も設定しておこう. __ ................................石塚 圭樹@日本ラショナルソフトェア... ----------------------------------->> e-mail: keiju@bc.mbn.or.jp <<---