Ruby 在BasicObject中动态定义方法
是否可以在Ruby 在BasicObject中动态定义方法,ruby,metaprogramming,Ruby,Metaprogramming,是否可以在BasicObject中动态定义实例方法?如果是,怎么做 class BasicObject def foo bar = "some_method_name" # I want to define a method `bar` end end 您可以使用:define_method符号作为send方法的参数,为您创建其他方法 Class BasicObject def foo input = "bar" BasicObject.send
BasicObject
中动态定义实例方法?如果是,怎么做
class BasicObject
def foo
bar = "some_method_name"
# I want to define a method `bar`
end
end
您可以使用
:define_method
符号作为send
方法的参数,为您创建其他方法
Class BasicObject
def foo
input = "bar"
BasicObject.send(:define_method, input) do
puts "baz!"
end
end
end
b = BasicObject.new
b.foo
b.bar
# => "baz!"
谁对这个答案投了赞成票?请不要随意更新答案。你能告诉我们这个答案是否有用吗?