RUBYの変数は、私が理解しているかどうかを見てください.


module DM
  def self.included(c)
    puts c.class
    c.extend MM
  end
  def set(a)
    @a=a
  end
  module MM
    def set(a)
      @abc=a
    end
    
    def get
      @abc
    end
  end
end
class TT 
  Abc=123
  include DM
  def self.setUrl(a)
    @baseUrl=a
  end
  
  def self.getUrl
    @baseUrl
  end
  def getUrl
    @baseUrl
  end
  def setUrl(a)
    @baseUrl=a
  end
end

TT extendがMMになった後、MMの中のselfの先頭の方法の中の@の先頭の変数ではありませんて、TTのこの種類の実例の変数になって、TTのコードの中でselfを加えたことに相当します.{MMのすべての方法}.
TTはDMも同時にincludeしているので、DMのメソッドの@先頭の変数はTTのクラスインスタンス変数ではなく、TTのインスタンスのインスタンス変数であることは理解しやすい.
続行:
クラスのインスタンスメソッドで定義された、または参照によって動的に定義された@先頭の変数は、インスタンス変数です.しかし、クラスのself.先頭のクラスメソッドで定義された@先頭の変数はクラスインスタンス変数です!名前は同じでも、役割ドメインが違うので全然違います.
私は自分で気絶して、どこがrubyのはっきりした継承関係の1つの図があることを知らないで、その上とてもTTのsingletonとTTの実例のsingletonを開けて見て、中にいったい何があるかを見たいです!!開けてみる方法を教えてください.開ける方法ではありません.