Некоторые инструменты стиля кода рекомендуют это, и я не забываю видеть, что некоторые инструменты командной строки Unix предупреждают о недостающей пустой строке.
Каково обоснование для того, чтобы иметь дополнительную пустую строку?
Многие старые инструменты работают неправильно, если последняя строка данных в текстовом файле не заканчивается символом новой строки или комбинацией возврата каретки / новой строки. Они игнорируют эту строку, поскольку вместо этого она заканчивается ^ Z (eof).
Помимо того, что это более удобная позиция курсора при переходе к концу файла в текстовом редакторе.
Наличие новой строки в конце файла обеспечивает простую проверку того, что файл не был усечен.
Пустая строка в конце файла появляется так, чтобы стандартное чтение из входного потока знало, когда прекратить чтение, обычно возвращает EOF, чтобы указать, что вы достигли конца. Большинство языков могут обрабатывать маркер EOF. Именно по этой причине с давних времен в DOS маркер EOF был клавишей F6 или Ctrl-Z, для систем * nix это был Ctrl-D.
Большинство, если не все, фактически будут читать прямо до маркера EOF, так что функция чтения из ввода библиотеки времени выполнения будет знать, когда прекратить чтение дальше. Когда вы открываете поток для режима добавления, он стирает маркер EOF и записывает после него, пока явно не будет вызвано закрытие, в которое он вставит маркер EOF в этой точке.
Старые инструменты ожидали появления пустой строки с маркером EOF. В настоящее время инструменты могут обрабатывать пустую строку и игнорировать ее.
Некоторые языки определяют свой входной файл в терминах входных строк, где каждая входная строка представляет собой серию символов, оканчивающихся кареткой. возвращаться. Если их грамматика определена таким образом, то последняя действительная строка файла также должна завершаться возвратом каретки.