2012-02-25 85 views
7

我可以傳遞多個參數,最後一個塊參數傳給方法。但是當我嘗試傳遞多個塊時顯示錯誤。我想知道如何做到這一點?如何將多個塊傳遞給ruby中的方法?

def abc(x, &a) 
    x.times { a.call("hello") } 
end 

abc(3) {|a| puts "#{a} Sana"} 
abc(1, &proc{|a| puts "#{a} Sana"}) 

但下面的定義給出錯誤

def xyz(x, &a, &b) 
    puts x 
    a.call 
    b.call 
end 

回答

12

您可以使用Proc

def xyz(x, a, &b) 
    puts x 
    a.call 
    b.call 
end 

xyz(3, Proc.new { puts 'foo' }) { puts 'bar' } 
相關問題