From: toyofuku@... Date: 1997-05-22T13:23:57+09:00 Subject: [ruby-list:2998] Re: access to instance variable 豊福@パパイヤです。 まつもとさん > このような場合,オブジェクトが生成される時に呼び出されるメソッ > ドinitializeを使ってインスタンス変数の初期化を行ないます. > > class Buffer > TABSTOP = 8 > attr :tabstop, TRUE > def initialize > @tabstop = TABSTOP > end > end > という感じでどうでしょう? ども、うまくいきました。 > あー,TABSTOPはクラス定数を定義していて,attrはアクセサを定 > 義しているので良いのですが,その次の行はBufferクラスオブジェ > クトそのもののインスタンス変数を設定しています. いわゆるクラス変数にあたるわけですかね。 それではこれならどうだと class Buffer attr :default_tabstop, TRUE @default_tabstop = 8 attr :tabstop, TRUE def initialize @tabstop = @default_tabstop # @tabstop = Buffer.default_tabstop end end x = Buffer.new を試したところ x.tabstop は nil でした。 @tabstop = Buffer.default_tabstop の方でやると ERR: undefined method 'default_tabstop' for Buffer(Class) でした。 今度のはどうまずいんでしょう。 --- 豊福@パパイヤ unbound@papaya.juice.or.jp toyofuku@juice.or.jp