Новая строка в конце исходного кода

Каждый раз, когда я открываю редактор кода в Visual Studio, всегда появляется пустая новая строка в конце сгенерированного кода. Я обычно удаляю их, потому что они мне кажутся неактуальными. Однако недавно я прочитал код на Github который сказал:

\ No newline at end of file

Это была последняя строчка. Теперь я думаю, что эти пустые новые строки в конце исходных кодов действительно имеют какое-то значение. Но что они означают? Обеспечивают ли они повышение производительности?


person afaolek    schedule 01.07.2011    source источник
comment
возможный дубликат Нет новой строки в конце предупреждения компилятора файла   -  person JohnFx    schedule 01.07.2011


Ответы (4)


Две вещи заставляют меня предпочесть новую строку в конце файлов:

  1. Проверки кода немного проще при просмотре различий, которые появляются в конце файла (т.е. если строка добавлена ​​в конец файла, похоже, что предыдущая строка изменилась, когда она получила только новую строку)
  2. Переход к концу файла (Ctrl + End в Windows) всегда помещает меня в тот же столбец, а не в какое-то неожиданное положение справа
person GaTechThomas    schedule 09.12.2015

Практически единственная разница в том, что если у вас есть файл без новой строки - вот так:

blah\n
bleh (no newline)

Когда вы измените его, чтобы он был:

blah\n
bleh\n
foo (no newline)

Затем, согласно diff, вы изменили 2 строки - одну с содержимым, другую с новой строкой ... что, вероятно, не то, что вы хотели. С другой стороны, на самом деле не так важно, какой путь вы выберете. Если вы добавите новые строки, ваши различия будут немного чище.

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

Конечно, никакой разницы в производительности это не имеет.

person viraptor    schedule 01.07.2011

Нет, никакой разницы.

Некоторые соглашения о кодировании говорят, что иметь последнюю строку новой строки хорошо, некоторые говорят, что это хорошо не.

person Jon Skeet    schedule 01.07.2011

Подробнее о новой строке в C ++ здесь: Нет новой строки в конце компилятора файла предупреждение

Я полагаю, что и Visual Studio, и Git делают это в основном для того, чтобы соответствовать соглашению.

person Marek Musielak    schedule 01.07.2011