Passar bloco em um método - Ruby [duplicado]
Esta pergunta já tem uma resposta aqui:
bloco @Code passado para cada um funciona com colchetes, mas não com 'do' - 'end' (ruby) 3 respostasTenho uma pequena pergunta sobre a passagem de bloc
def a_method(a, b)
a + yield(a, b)
end
Isso funciona bem.
k = a_method(1, 2) do |x, y|
(x + y) * 3
end
puts k
Mas isso não vai funcionar.
puts a_method(1, 2) do |x, y|
(x + y) * 3
end
# LocalJumpError: no block given (yield)
Alguém pode me explicar isso gentilmente?
Obrigado. Exemplo extraído de Metaprogramming Ruby de Paolo Perrotta. Grande livro