Pasar el bloque en un método - Ruby [duplicado]
Esta pregunta ya tiene una respuesta aquí:
El bloque de código pasado a cada uno funciona con corchetes pero no con 'do' - 'end' (ruby) 3 respuestasTengo una pequeña pregunta sobre pasar el bloque.
def a_method(a, b)
a + yield(a, b)
end
Esto funciona bien.
k = a_method(1, 2) do |x, y|
(x + y) * 3
end
puts k
Pero esto no funcionará.
puts a_method(1, 2) do |x, y|
(x + y) * 3
end
# LocalJumpError: no block given (yield)
¿Alguien puede explicarme esto amablemente?
Gracias. Ejemplo tomado de Metaprogramming Ruby por Paolo Perrotta. Gran libro.