Block-Syntaxunterschied verursacht "LocalJumpError: kein Block angegeben (Ausbeute)" [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

Saw ein seltsamer Fall auftauchen und versuchen, herauszufinden, was hier passiert:

> def test
>   p yield
> end
=> nil
> test { 1 }
1
=> 1
> p test { 1 }
1
1
=> 1
> p test do
>   1
> end
LocalJumpError: no block given (yield)

Antworten auf die Frage(2)

Ihre Antwort auf die Frage