私はコードを見ました:
class MyClass
define_method :my_method do |my_arg|
my_arg*3
end
end
obj = MyClass.new
obj.my_method(2) # => 6
を作成するときobj
、まだ呼び出していないdefine_method
ので、my_method
作成されるべきではありませんでした。では、なぜobj.my_method(2)
直接電話できるのでしょうか。つまり、インスタンス化define_method
されたときに実行されますか?MyClass