Gibt es irgendwelche eingebaute Möglichkeit, dass ein Block an eine Ruby-Methode übergeben werden muss? Ich weiß, ich kann nur eine Ausnahme auslösen, wenn block_given?
falsch ist, aber gibt es einen schöneren Weg, es zu tun?Wie benötigt man einen Block in Ruby?
18
A
Antwort
22
Einfach mit yield
.
Wenn Sie yield
in eine Methode einschließen und ein Block nicht angegeben ist, wird ein Fehler ausgegeben.
diese in einer Datei speichern, und führen Sie es:
def needs_block
yield
end
needs_block
Es wird eine Fehlermeldung wie diese werfen:
LocalJumpError: no block given
from (irb):14:in `needs_block'
from (irb):16
9
raise 'need block' unless block_given?
+1
Dies ist die beste Antwort, da es keine Nebenwirkungen hat (d. H. Den Block aufrufen). –
Verwandte Themen
- 1. Wie man eine Ruby-Methode in einen Block umwandelt?
- 2. Ruby: Klasse akzeptiert einen Block?
- 3. Wie man einen Block freigibt
- 4. Ruby Debugger Schritt in einen Block direkt?
- 5. Private/geschützte Block in Ruby?
- 6. Wie übergeben Sie einen Block in Ruby zu einem anderen?
- 7. Unterschied zwischen Block und & Block in Ruby
- 8. Einen Ruby-Block erstellen ein Array zurückgeben?
- 9. Ruby: Ausbeute Block von einem Block?
- 10. Besuchermuster in Ruby, oder einfach einen Block verwenden?
- 11. Warum benötigt man einen Vektor?
- 12. Mysterious Ruby-Block-Verhalten: & Block gegen {block.call}
- 13. Wie konvertiere ich einen Proc in einen Block in einer Ruby C-Erweiterung?
- 14. Wie benötigt man einen Controller in einer angularjs-Direktive?
- 15. Wie man einen ganzen Block in Vim reißt?
- 16. Wie übergibt man einen ausführbaren Block als Parameter in Java?
- 17. Wie man einen Block in seine Klasse konvertiert - Canarymod
- 18. Wie erstellt man einen unqualifizierten Catch-Block in Dynamics AX?
- 19. Create Hash mit Block (Ruby)
- 20. Kann passieren ich einen Block, der sich ein Block erwarten in Ruby instance_exec?
- 21. Einzel-Block-AES-Entschlüsselung in Ruby
- 22. Access Chef Ressourcen in Ruby Block
- 23. Wie wird ein Block benötigt die minimal erforderliche Breite?
- 24. Ruby Doppelrohr Zuweisung mit Block/proc/Lambda?
- 25. Wie benötigt man Schlüsselwortargumente in Common Lisp?
- 26. Ruby Timeout einen Block von Code nach n * Milli * Sekunden
- 27. Syntax definieren einen Block, einen Block und gibt einen Block in Objective-C
- 28. Wie konvertiert man einen Bruchteil in float in Ruby
- 29. Einfaches Ruby-Programm ... Hilfe benötigt
- 30. Swagger 2.0 - wie man "den einen oder anderen" Parameter benötigt?
Nun, das viel zu einfach :) Danke war! –