Какая причина оставлять лишнюю пустую строку в конце файла кода?

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

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

Ответы

Ответ 1

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

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

Ответ 2

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

Ответ 3

Это не обязательно историческая причина, почему, но это хорошая причина, IMO:

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

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

Ответ 4

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

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

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