かずきのBlog@hatena

日本マイクロソフトに勤めています。このブログは個人ブログなので、ここに書いている内容は個人的な意見で会社の公式見解ではない点にご注意ください。好きなものは XAML と C# 。苦手なものは型の無い言語です。

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とかを呼べるわけなんだ。
やっとすっきり。