给定以下模块,
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 ,但那不好玩。
Foo.send(:bar)
def self.bar
好吧,简单的方法是
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