Module
クラスを開いて、それにメソッドを追加しましょう。
class Module
def foo
puts "phew"
end
end
これを行うことで、このメソッドを呼び出すことができます。
Class.foo
Class
これは、のクラスがでありClass
、そのスーパークラスがであるため理解できModule
ます。したがって、で定義されたインスタンスメソッドを呼び出すことができますModule
。
ここで、以下のメソッドはの固有クラスbar
で定義されています。Module
class Module
def self.bar
puts "bar"
end
end
でも今
Class.bar
また動作します。
誰かがの固有クラスのClass
メソッドにアクセスする方法を教えてModule
もらえますか?
私は今それを手に入れたと思います。メソッドルックアップは、前に説明したようには機能しません。私がそうするときClass.foo
、メソッドはClass
's eigenclassで検索され、次に'eigenclassから'seigenclassまでのスーパークラスでありModule
、BasicObject
その時点で(蛇が自分の尻尾を食べるように)自分自身をオンにしてClass
('s eigenclassのスーパークラスと同様に)、次にそのスーパークラスClass
に、メソッドが見つかります。BasicObject
Module
同様に、私が行うClass.bar
と、メソッドはClass
's eigenclassで検索され、次にModule
'seigenclassで検索されます。
私がする時
class Class
def check
puts "class instance method"
end
end
と
class Module
def self.check
puts "modules eigenclass method"
end
def check
puts "module instance method"
end
end
私が行うときの出力はwotだと思います:
Class.check
これが私の現在の理解です: