Algumas ferramentas de estilo de código recomendam isso e lembro-me de ver algumas ferramentas de linha de comando unix alertando sobre a falta de linha vazia.
Qual o motivo de ter uma linha extra vazia?
language-agnostic
coding-style
eof
Petteri Hietavirta
fonte
fonte
\n\n
) ou nova linha\n
?cat
o arquivo em um shell e você saberá o porquê. Se o seu arquivo fizer com que o prompt do meu shell apareça em qualquer outro lugar que não o local (no início da linha), provavelmente odeio você. ;)Respostas:
Muitas ferramentas antigas se comportam mal se a última linha de dados em um arquivo de texto não for finalizada com uma combinação de nova linha ou retorno de carro / nova linha. Eles ignoram essa linha, pois termina com ^ Z (eof).
fonte
\n
) no final do arquivo. Vários editores de texto, como o Vim, e vários compiladores (principalmente C ++ e Python) emitem avisos. ( 'S Em caso de C ++, a norma exige explicitamente este.)\n\n
.Se você tentar concatenar dois arquivos de texto juntos, ficará muito mais feliz se o primeiro terminar com um caractere de nova linha.
fonte
Além do fato de ser uma posição mais agradável do cursor quando você move para o final de um arquivo em um editor de texto.
Ter uma nova linha no final do arquivo fornece uma verificação simples de que o arquivo não foi truncado.
fonte
Também é possível argumentar para diferenças mais limpas se você anexar ao arquivo seguindo o mesmo raciocínio de Por que vírgulas finais são permitidas em uma lista?
O seguinte é copiado (e aparado um pouco) do recurso vinculado:
Alterando:
para:
envolve apenas uma alteração de uma linha no diff:
Isso supera a diferença de várias linhas mais confusa quando a vírgula à direita foi omitida:
fonte
A linha vazia no final do arquivo aparece para que a leitura padrão do fluxo de entrada saiba quando finalizar a leitura; geralmente retorna EOF para indicar que você chegou ao final. A maioria dos idiomas pode lidar com o marcador EOF. É por esse motivo que desde os tempos antigos, no DOS, o marcador EOF era a tecla F6 ou Ctrl-Z, para sistemas * nix, era Ctrl-D.
A maioria, se não todas, realmente lerá até o marcador EOF, para que a função de leitura da entrada da biblioteca de tempo de execução saiba quando parar de ler mais. Quando você abre o fluxo para o modo Anexar, ele limpa o marcador EOF e o grava além dele, até que um fechamento seja explicitamente chamado no qual ele será inserido nesse marcador.
As ferramentas mais antigas esperavam uma linha vazia seguida pelo marcador EOF. Atualmente, as ferramentas podem lidar com a linha vazia e ignorá-la.
fonte
\r\n
vez de\n
, o DOS chama usando uma mistura de ASCIIZ e ASCII $. Pior ainda, mais tarde no Windows, normalmente, insira uma BOM (Unicode Byte Order Mark) no início da maioria dos arquivos de texto. Adorável "singularidade".Além disso, quando você modifica um arquivo e acrescenta algum código no final do arquivo - diff (pelo menos git diff na configuração padrão) mostra que você alterou a última linha, enquanto a única coisa que realmente fez - adicionou um símbolo de nova linha. Portanto, os relatórios cvs se tornam menos convenientes.
fonte
Alguns idiomas definem seu arquivo de entrada em termos de linhas de entrada, onde cada linha de entrada é uma série de caracteres terminados por um retorno de carro. Se a gramática deles estiver definida, a última linha válida do arquivo também deverá ser encerrada por um retorno de carro.
fonte
É por causa da definição do que é um arquivo de texto. Quando você cria um novo arquivo de texto em qualquer ambiente unix, o conteúdo desse arquivo é o novo caractere de linha '\ n'
Sem isso, o arquivo não é realmente identificado como um arquivo de texto. Agora, uma vez que adicionamos código a esse arquivo de texto, trata-se de não remover esta nova linha inicial que define o próprio arquivo de texto .
fonte