【发布时间】:2014-05-02 22:25:26
【问题描述】:
是否可以在BasicObject 中动态定义实例方法?如果有,怎么做?
class BasicObject
def foo
bar = "some_method_name"
# I want to define a method `bar`
end
end
【问题讨论】:
标签: ruby metaprogramming
是否可以在BasicObject 中动态定义实例方法?如果有,怎么做?
class BasicObject
def foo
bar = "some_method_name"
# I want to define a method `bar`
end
end
【问题讨论】:
标签: ruby metaprogramming
您可以使用: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!"
【讨论】: