Es beschreibt den Beginn eines hier Dokumentes. Wahrscheinlich verwirrt Sie, dass das Here-Dokument von der nächsten Zeile aus beginnt; alles, was diesem Ausdruck innerhalb dieser Zeile folgt, ist eine Fortsetzung des hier vorliegenden Dokuments. Somit gegeben, dass der Inhalt der hier Dokument als heredoc
dargestellt wird, ist der Ausdruck entspricht:
class_eval heredoc, __FILE__, __LINE__ + 1
was bedeutet, den Inhalt des hier Dokuments in einer Klasse-Umgebung zu bewerten, und immer dann, wenn ein Fehler erhöht wird, assoziiertes der Ort mit der aktuellen Datei (__FILE__
) und die erste Zeile des hier vorliegenden Dokuments (also die Zeile nach dem Anfang, __LINE__ + 1
) sollten als Zeile 1 gezählt werden.
Es lohnt sich wahrscheinlich zu erwähnen, dass Sie beliebige Buchstaben oder Zahlen verwenden können für ein heredoc: 'puts << -_ END_';' stuff'; '_END_' Sie können auch eine String-Interpolation in heredocs durchführen, indem Sie die ganze geschweifte Klammern-Sache machen:' x = "string" '; puts << - -END -'; '# {x } ';' -END-' – 13aal