6
これはどのように機能しますか?以下を実行すると、"hi from class"
が2回印刷されます。このように動作させるために、ルビーの中で何が起こっているのですか?私は実際に私はあなたがそれを認識しているかどうかわかりませんが、あなたがclass Class ... end
を行うとき、あなたは「、あなたをClass
という名前の新しいクラスを作成していないクラスクラスクラス - インスタンスとクラスのメソッド
class Class
def foo
puts "hi from class"
end
end
Class.foo
x = Class.new
x.foo
だから( 'class Class'の本文で)私はdef self.foo; 「自己から**こんにちは」**; end; '...' Class.foo'というステートメントは 'hi from self'を出力しますか? – slindsey3000
@ slindsey3000: 'Class'でインスタンスメソッドとクラスメソッドの両方を定義すると、' Class.foo'はクラスメソッドを呼び出し、 'AnyOtherClass.foo'はインスタンスメソッドを呼び出します。したがって、あなたの例では 'Class.foo'は' hi from ** self ** 'を出力します。 'String.foo'は' hi from class'を出力します。 – sepp2k