From: matz@... (Yukihiro Matsumoto) Date: 1997-08-29T15:04:33+09:00 Subject: [ruby-dev:329] Re: virtual class [Re: [Q] [Re: [BUG] method index] ] まつもと ゆきひろです In message "[ruby-dev:328] Re: virtual class [Re: [Q] [Re: [BUG] method index] ]" on 97/08/29, 石塚圭樹 writes: |けいじゅ@日本ラショナルソフトウェアです. |>つまり同じオブジェクトに対して2回以上仮想クラスを生成したと |>して,前回設定した定数やインスタンス変数が残っていることは保 |>証しない(現在の実装では残っているけど)ということで良いですか? | |いえいえ. インスタンス変数は保証しないが, クラス定数は保証して欲しいん |ですけど... そうなんですか? まあ,現状では沿うなっているんで構わないと 言えば構わないんですが. |インスタンス変数はclass<<の中でしかアクセスできないので, 別のclass<<で |値が変わっても変ではないですが(変数の連続性がない), クラス定数はインス |タンスから常にアクセスできますので(変数の連続性がある), class<<毎に値 |が変わるってのも変ですよね? クラス定数も class << から end までの間でしか参照できません けど.あれ,もしかして class << self Foo = 25 end def self.foo p Foo end self.foo で25が参照できると思っておいでですか? 定数の参照スコープは もっと静的です. # 半端に動的ですけど. |> $vsave, $VERBOSE = $VERBOSE, FALSE |> .. |> $VERBOSE = $vsave |> |>で囲んでおきましょう.jcode.rbも. | |おお. こんな技が... 私も設定しておこう. 例外が発生する可能性がある場合はbegin .. ensure .. endを使う 必要がありますね. まつもと ゆきひろ /:|)