it-swarm.com.de

Warum wird empfohlen, eine leere Zeile am Ende der Datei zu haben?

Einige Code-Stil-Tools empfehlen dies, und ich erinnere mich, dass einige Unix-Befehlszeilen-Tools gewarnt wurden, die darauf hinweisen, dass keine leere Zeile vorhanden ist.

Was ist der Grund für eine extra leere Zeile?

173

Viele ältere Werkzeuge verhalten sich falsch, wenn die letzte Datenzeile in einer Textdatei nicht mit einer Zeilen- oder Wagenrücklauf-/neuen Zeilenkombination abgeschlossen wird. Sie ignorieren diese Zeile, da sie stattdessen mit ^ Z (eof) abgeschlossen wird.

141

Abgesehen davon, dass es sich um eine schönere Cursorposition handelt, wenn Sie in einem Texteditor an das Ende einer Datei gehen.

Wenn Sie am Ende der Datei einen Zeilenumbruch haben, können Sie einfach überprüfen, ob die Datei nicht abgeschnitten wurde.

35
rsp

Wenn Sie versuchen, zwei Textdateien miteinander zu verketten, sind Sie viel glücklicher, wenn die erste mit einem Zeilenvorschubzeichen endet.

33
user1809090

Ein Argument kann auch für Cleaner-Diffs gemacht werden, wenn Sie an die Datei anhängen, und zwar aus den gleichen Gründen wie .

14
Mathias Bak

Die leere Zeile am Ende der Datei wird angezeigt, sodass das Standardlesen aus dem Eingabestrom weiß, wann der Lesevorgang beendet werden soll. In der Regel wird EOF zurückgegeben, um anzuzeigen, dass Sie das Ende erreicht haben. Die meisten Sprachen können die Markierung EOF verarbeiten. Aus diesem Grund war es aus alten Gründen dort, unter DOS war die Markierung EOF die Taste F6 oder Strg-Z, für * nix-Systeme Ctrl-D.

Die meisten, wenn nicht alle, werden tatsächlich bis zur Markierung EOF gelesen, sodass die Laufzeitbibliothek beim Lesen von Eingaben weiß, wann das Lesen beendet werden soll. Wenn Sie den Stream für den Anfügemodus öffnen, wird der Marker EOF gelöscht und an ihm vorbei geschrieben, bis ein Schließen explizit aufgerufen wird, in dem er an diesem Punkt den Marker EOF einfügt.

Ältere Werkzeuge erwarteten eine leere Zeile, gefolgt von der Markierung EOF. Heutzutage können Werkzeuge die leere Linie verarbeiten und ignorieren.

14
t0mm13b

Auch wenn Sie die Datei ändern und am Ende der Datei etwas Code anhängen - diff (zumindest git diff in der Standardkonfiguration) zeigt an, dass Sie die letzte Zeile geändert haben, während das einzige, was Sie tatsächlich getan haben - ein Zeilenumbruchsymbol hinzugefügt hat. So werden cvs-Berichte weniger bequem.

8
prijutme4ty

Einige Sprachen definieren ihre Eingabedatei in Form von Eingabezeilen, wobei jede Eingabezeile aus einer Reihe von Zeichen besteht, die durch einen Wagenrücklauf abgeschlossen werden. Wenn ihre Grammatik so definiert ist, muss die letzte gültige Zeile der Datei ebenfalls mit einem Wagenrücklauf abgeschlossen werden.

Es liegt an der Definition dessen, was eine Textdatei ist. Wenn Sie eine neue Textdatei in einer Unix-Umgebung erstellen, ist der Inhalt dieser Datei das Zeichen new line '\ n'.

Andernfalls wird die Datei nicht wirklich als Textdatei identifiziert. Wenn wir nun dieser Textdatei Code hinzufügen, wird diese neue Zeile nicht entfernt, die eine Textdatei selbst definiert

0