2012-02-25 9 views
7

Puedo pasar múltiples parámetros y por último un parámetro de bloque al método. Pero muestra un error cuando intento pasar más de un bloque. Quiero saber cómo se puede hacer?¿Cómo pasar múltiples bloques al método en ruby?

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

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

Pero debajo de la definición da error

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

Respuesta

12

Puede utilizar Proc:

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

xyz(3, Proc.new { puts 'foo' }) { puts 'bar' } 
Cuestiones relacionadas