В чем причина оставить лишнюю пустую строку в конце файла кода? - PullRequest
13 голосов
/ 08 марта 2010

Eclipse и MyEclipse по умолчанию создают новые файлы Java с дополнительной пустой строкой после последней закрывающей скобки.Я думаю, что CodeWarrior сделал то же самое несколько лет назад, и что некоторые люди оставляют такие пустые строки в своем коде либо намеренно, либо лень.Таким образом, это, по-видимому, как минимум умеренно распространенное поведение.

Как бывший редактор на человеческом языке - в основном, редактирование газет, - я нахожу, что эти строки выглядят как неряшливые или случайные, и я не могуподумайте о причине, чтобы оставить их в исходных файлах.Я знаю, что они не влияют на компиляцию в языках стиля C, включая Java.Есть ли преимущества в использовании этих строк, и если да, то каковы они?

Ответы [ 4 ]

11 голосов
/ 28 марта 2010

Это история, касающаяся распространенных ошибок в утилитах командной строки для обработки текста. В системе Unix существует множество программ для обработки текста, и большинство из них работают построчно. Могут быть или не быть какие-либо распространенные инструменты командной строки, которые ведут себя неправильно, когда последняя строка не заканчивается новой строкой, но исторически это явление достаточно распространено, и другие инструменты начали предупреждать о ситуации.

В последний раз я проверял, что vim на самом деле не способен сохранить файл, который не заканчивается новой строкой, и даже не может добавить его независимо от того, положили вы его или нет.

3 голосов
/ 13 марта 2010

AFAIK, это хорошая практика, чтобы каждая строка заканчивалась символом новой строки, потому что когда код анализируется, его можно прочитать с помощью одной простой функции, которая разбивает файл на строки в соответствии с этими символами новой строки. Без пустой строки и, следовательно, последняя строка заканчивается новой строкой, вы потеряете все символы в этой строке.

1 голос
/ 08 марта 2010

Это не обязательно историческая причина, но хорошая причина, ИМО:

Он не позволяет вам забыть заключительную новую строку в конце вашего файла. Компиляторы обычно предупреждают об этом, и системы управления версиями тоже будут предупреждать об этом, и при добавлении новой строки, чтобы избавиться от предупреждения компилятора, строка будет отображаться как измененная.

Короче говоря, это снижает вероятность шума и ненужных различий SCM.

0 голосов
/ 29 марта 2013

У меня недостаточно очков, чтобы комментировать, но я хотел сказать кое-что о заявлении @Justin Smith, что «[vim будет идти] настолько далеко, чтобы добавить один [newline] независимо от того, положите ли вы его туда или нет , ".

Я только что проверил vim в моем Arch VirtualBox, и, хотя он есть, vim не показывает пустой символ новой строки . Если вы откроете файл, сохраненный с помощью vim в nano, nano покажет, что в конце есть пустой символ новой строки . Поэтому я решил посмотреть, что произойдет , если я вручную создам новую строку с помощью vim, и nano показал, что есть 2 новые строки .

Для меня это имеет смысл, потому что это похоже на закрытие строки до окончания файла , как закрытие всех ваших тегов в HTML.

...