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,这将起作用.
| 归档时间: |
|
| 查看次数: |
381 次 |
| 最近记录: |