豊福@パパイヤです。 まつもとさん >| @tabstop = @default_tabstop の方はエラーにはならないの >|ですが、このときの右辺の @default_tabstop は何を見ている >|のでしょう。 > メソッドと違いインスタンス変数は初期化されていなくてもエラー > にならないからです.@default_tabstopはBufferのインスタンスの > 初期化されないインスタンス変数(値はnil)を参照しています. やっと何が起こっているのかわかってきました。 > | バッファローカル変数っぽく書くのはこれでいいんでしょうか。 > そうですね.でもこれだとBufferのサブクラスとは値が共有されま > せんから,バッファローカル変数のデフォルト値を格納するテーブ > ルを持つのが良いのでは. 私としてはここら辺がいいです。 > あるいはバッファローカル変数をインスタンス変数で実装すること > そのものを避けてしまって, ... > なんてのはどうでしょう. > > buf = Buffer.new > buf.property("tabstop") > buf.set_property("tabstop", 4) > > という感じで使うんですけど. やっぱり変数っぽく書きたいですね。 S-Lang のバッファローカル変数もちょうどこれと同じように変数名 文字列を使って set,get します。 --- 豊福@パパイヤ unbound / papaya.juice.or.jp toyofuku / juice.or.jp