我有一个需要块的方法,但我只有一个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
答案 0 :(得分:5)
您可以使用一元和号(proc
)将block
转换为&
:
twice &p
# Hello
# Hello
#=> nil