8.2 Strings und Blöcke auswerten

Eines der mächtigsten und einleuchtendsten reflektiven Features von Ruby ist die Methode eval. Wenn Ihr Ruby-Programm einen String mit gültigem Ruby-Code erzeugen kann, kann die Methode Kernel.eval diesen Code auswerten:

x = 1
eval "x + 1"  # => 2

eval ist eine sehr leistungsfähige Funktion, aber solange sie nicht tatsächlich ein Shell-Programm (wie irb) schreiben, das vom User eingegebene Zeilen mit Ruby-Code ausführt, werden Sie sie wahrscheinlich nicht benötigen. (Und in einem Netzwerkkontext ist es so gut wie nie sicher, eval mit Text aufzurufen, der von einem User empfangen wurde, da er Schadcode enthalten könnte.) Unerfahrenen Programmierern passiert es manchmal, dass sie eval als Krücke verwenden. Wenn Sie ...

Get Die Programmiersprache Ruby now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.