Ruby:如何使用proc而不是块来调用方法

时间:2016-12-08 13:46:02

标签: ruby

我有一个需要块的方法,但我只有一个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

1 个答案:

答案 0 :(得分:5)

您可以使用一元和号(proc)将block转换为&

twice &p
# Hello
# Hello
#=> nil