について:クラス<<自分はどういう意味ですか?
class Test
class << self
def hi
puts "Hi there"
end
end
私は私の頭の中でイメージを、次のを思い付いた:
すべてがRubyでオブジェクトなので、クラス自体は、クラスClass
のオブジェクトです。 class << self
を呼び出してTest
の内側からClass
定義を開き、いくつかのインスタンスメソッドを注入します。 Test
はClass
のインスタンスなので、オブジェクトのインスタンスメソッドを呼び出すのと同じ方法でこれらのメソッドを呼び出すことができます:Test.hi
。続き
は私の前の文を視覚化するのに役立ちます擬似コードです:
class Class
def hi
puts “Hi there”
end
end
Test = Class.new(class Test
end)
Test.hi
私はこの権利を取得していますか?
Rubyは基本的に 'Class'を変更するのではなく、' Class'を継承し、 'hi'メソッドを定義し、' Test'オブジェクトのクラスである匿名クラスを作成しますか? – spacemonkey
はい。そうです。 – sawa
最終的にこれをクラックするニース。ありがとうございました! – spacemonkey