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 O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.