[#37021] [RAA] RAA/2.3 — "U.Nakamura" <usa@...>

みなさんこんにちは。

20 messages 2003/01/30

[ruby-list:36990] Re: create class function from Module

From: nobu.nakada@...
Date: 2003-01-25 01:18:32 UTC
List: ruby-list #36990
なかだです。

At Sat, 25 Jan 2003 00:50:51 +0900,
Oliver M. Bolzer <oliver@gol.com> wrote:
> また、このknow_something?の結果を決めるフラグもクラス変数としてBarに追加
> しなければいけません。

クラス変数は、継承関係にあるクラス/モジュール間で共有されます。
そうでないものには、クラス変数よりもクラス自身のインスタンス変
数のほうが向いているかも知れません。あるいは$Aクラス毎$Aに固定なら、
クラスメソッドを定義するとか、定数にするという方法もあります。
定数ならスコープ指定で定義されているクラスを選べます。

  module M
    X = 1
  end
  class C
    include M
    def x
      # インスタンスの実際のクラスで定義されているX
      self.class::X
    end
  end
  class D < C
    X = 2
  end
  p C.new.x	# => 1
  p D.new.x	# => 2

-- 
--- 僕の前にBugはない。
--- 僕の後ろにBugはできる。
    中田 伸悦

In This Thread