Block in eine Methode übergeben - Ruby [duplizieren]

Diese Frage hat hier bereits eine Antwort:

Code-Block, der an jeden übergeben wird, funktioniert mit Klammern, aber nicht mit 'do' - 'end' (ruby) 3 Antworten

Ich habe eine kleine Frage zum Blockieren.

def a_method(a, b)
  a + yield(a, b)
end

Dies funktioniert gut.

k = a_method(1, 2) do |x, y| 
  (x + y) * 3 
end
puts k

Aber das wird nicht funktionieren.

puts a_method(1, 2) do |x, y| 
  (x + y) * 3 
end
# LocalJumpError: no block given (yield)

ann mir jemand das bitte erkläre

Vielen Dank. Beispiel aus der Metaprogrammierung Ruby von Paolo Perrotta. Tolles Buch

Antworten auf die Frage(2)

Ihre Antwort auf die Frage