gay*_*vat 2 ruby metaprogramming ruby-on-rails-3
是否可以使用Module或对象作为ruby中每个方法的参数?
我需要类似的东西.
module PrintAny
def call(text)
puts text
end
end
["any"].each PrintAny
Run Code Online (Sandbox Code Playgroud)
几乎.您可以将模块转换为proc并以这种方式使用它:
module PrintAny
def self.print(text)
puts text
end
def self.to_proc
method(:print).to_proc
end
end
["any"].each &PrintAny # => prints "any"
Run Code Online (Sandbox Code Playgroud)
Enumerable#each要求你传递一个块,ampersand operator(&)通过首先调用to_proc该对象将一个对象转换为块.模块只是对象,因此如果它们有方法to_proc,这将起作用.