かずきのBlog@hatena

日本マイクロソフトに勤めています。XAML + C#の組み合わせをメインに、たまにASP.NETやJavaなどの.NET系以外のことも書いています。掲載内容は個人の見解であり、所属する企業を代表するものではありません。

ClassクラスとModuleクラス

って理解でOKかな?

試しにこうしてみると

module M
  puts self.name
  puts self.class
end
puts "==============="
class C
  puts self.name
  puts self.class
end

こうなる

M
Module
===============
C
Class


ってことは、クラス定義の中ではClassクラスのインスタンスがselfになってるのかぁ。

確認その2

これを動かしても

class C
end

puts C.name
puts C.class

こうなる

C
Class


クラス定義中やモジュールの定義中のselfはClassクラスやModuleクラスだからattr_accessorとかを呼べるわけなんだ。
やっとすっきり。