2012-02-25 30 views
7

私は複数のパラメータと最後に1つのブロックパラメータをメソッドに渡すことができます。しかし、私は複数のブロックを渡そうとするとエラーを表示します。私はそれがどのようにできるのか知りたいですか?ルビのメソッドに複数のブロックを渡すには?

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' } 
関連する問題