かずきのBlog@hatena

すきな言語は C# + XAML の組み合わせ。Azure Functions も好き。最近は Go 言語勉強中。日本マイクロソフトで働いていますが、ここに書いていることは個人的なメモなので会社の公式見解ではありません。

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