[ruby-list:2998] Re: access to instance variable

From: toyofuku@...
Date: 1997-05-22 04:23:57 UTC
List: ruby-list #2998
  豊福@パパイヤです。

まつもとさん
> このような場合,オブジェクトが生成される時に呼び出されるメソッ
> ド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

In This Thread

Prev Next