我有一个需要块的方法,但我只有一个Proc对象.如何在没有难看的包装的情况下调用它?
def twice
yield
yield
end
p = Proc.new { puts "Hello" }
twice p # Does not compile "wrong number of parameters"
twice { p.call } # Ugly and difficult for additional parameters
Run Code Online (Sandbox Code Playgroud)
您可以将其转换proc为block使用一元&符号(&):
twice &p
# Hello
# Hello
#=> nil
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
73 次 |
| 最近记录: |