From: "keiju@... (Keiju ISHITSUKA)" Date: 1997-08-12T23:06:07+09:00 Subject: [ruby-dev:111] [!?] local variable and accessor けいじゅ@いそうろう.日本ラショナルです. ちょっと不思議な現象に出あっています. これはバグなんでしょうか? それと も仕様なんでしょうか? 以下のプログラムをみてください. このプログラムは, 上位クラスから下位ク ラスのアクセサを呼ぶプログラムです. class Foo def foo if FALSE bar = 2 else print bar end end def baz if TRUE print bar else bar = 2 end end end class Bar < Foo def initialize @bar = 1 end attr :bar, TRUE end f = Bar.new f.foo f = Bar.new f.baz ================= nil1 実行結果は上記のようになっています. Foo#foo, Foo#bazとも同じ結果(1)が出て欲しいのですが, そうなっていませ ん. 両方ともアクセサbar=が実行されるべきだと思うのですが?? で, Foo#fooでは 代入が先に出てくるのでそうなるのかなと思ったのですが... これを実際に実行する関数に変えると: def foo2 if TRUE bar = 2 print inspect else print bar end end ちゃんと動作しています. 一体どうなっているのでしょう??? __ ..........................................石塚 圭樹@日本ラショナル... ----------------------------------->> e-mail: keiju@bc.mbn.or.jp <<---