给出以下模块,
module Foo
def bar
:baz
end
end
def send_to_foo(method)
# ...?
end
send_to_foo(:bar) # => :baz
send_to_foo
应使用哪些代码使最后一行按预期工作? (send_to_foo
显然不是我如何实现这一点;它只是让我更清楚我正在寻找的东西。)
我希望Foo.send(:bar)
首先工作,但它没有意义。如果方法被定义为def self.bar
,那就好了。但这没什么好玩的。
答案 0 :(得分:2)
Foo.extend Foo # let Foo use the methods it contains as instance methods
def send_to_foo(method)
Foo.send(method)
end
所以现在
irb> send_to_foo(:bar)
#=> :baz