Algunas herramientas de estilo de código recomiendan esto y recuerdo haber visto algunas advertencias de herramientas de línea de comandos de Unix sobre la falta de línea vacía.
¿Cuál es el razonamiento para tener una línea vacía adicional?
language-agnostic
coding-style
eof
Petteri Hietavirta
fuente
fuente
\n\n
) o nueva línea\n
?cat
el archivo en un shell y sabrás por qué. Si su archivo hace que el indicador de mi shell aparezca en cualquier otro lugar que no sea el que debería ser (al comienzo de la línea), probablemente lo odie. ;)Respuestas:
Muchas herramientas antiguas se comportan mal si la última línea de datos en un archivo de texto no termina con una nueva línea o una combinación de retorno de carro / nueva línea. Ignoran esa línea ya que termina con ^ Z (eof) en su lugar.
fuente
\n
) al final del archivo. Varios editores de texto, como Vim, y varios compiladores (especialmente C ++ y Python) emitirán advertencias. (En el caso de C ++, el estándar lo requiere explícitamente).\n\n
.Si intenta concatenar dos archivos de texto, será mucho más feliz si el primero termina con un carácter de nueva línea.
fuente
Además del hecho de que es una mejor posición del cursor cuando te mueves al final de un archivo en un editor de texto.
Tener una nueva línea al final del archivo proporciona una comprobación simple de que el archivo no se ha truncado.
fuente
También se puede hacer un argumento para diferenciales más limpios si agrega al archivo siguiendo el mismo razonamiento que ¿Por qué se permiten las comas finales en una lista?
Lo siguiente se copia (y se recorta un poco) del recurso vinculado:
Cambiando:
a:
implica solo un cambio de una línea en el diff:
Esto supera la diferencia de varias líneas más confusa cuando se omite la coma final:
fuente
La línea vacía al final del archivo aparece para que la lectura estándar de la secuencia de entrada sepa cuándo finalizar la lectura, generalmente devuelve EOF para indicar que ha llegado al final. La mayoría de los idiomas pueden manejar el marcador EOF. Está allí por esa razón desde los viejos tiempos, bajo DOS, el marcador EOF era la tecla F6 o Ctrl-Z, para los sistemas * nix, era Ctrl-D.
La mayoría, si no todos, leerán hasta el marcador EOF para que la función de lectura de la biblioteca en tiempo de ejecución sepa cuándo dejar de seguir leyendo. Cuando abra la secuencia para el modo Anexar, borrará el marcador EOF y escribirá más allá, hasta que se llame explícitamente un cierre en el que insertará el marcador EOF en ese punto.
Las herramientas más antiguas esperaban una línea vacía seguida de un marcador EOF. Hoy en día, las herramientas pueden manejar la línea vacía e ignorarla.
fuente
\r\n
lugar de\n
, DOS llama usando una mezcla de ASCIIZ y ASCII $. Peor aún, más adelante, Windows generalmente inserta una marca de orden de byte Unicode (BOM) al comienzo de la mayoría de los archivos de texto. Encantadora "singularidad".Además, cuando modifica el archivo y agrega algún código al final del archivo, diff (al menos git diff en la configuración estándar) mostrará que ha cambiado la última línea, mientras que lo único que ha hecho realmente es agregar un símbolo de nueva línea. Entonces los informes cvs se vuelven menos convenientes.
fuente
Algunos idiomas definen su archivo de entrada en términos de líneas de entrada, donde cada línea de entrada es una serie de caracteres terminados por un retorno de carro. Si su gramática está así definida, entonces la última línea válida del archivo también debe terminar con un retorno de carro.
fuente
Se debe a la definición de lo que es un archivo de texto. Cuando crea un nuevo archivo de texto en cualquier entorno Unix, el contenido de ese archivo es el nuevo carácter de línea '\ n'
Sin esto, el archivo no se identifica realmente como un archivo de texto. Ahora, una vez que agreguemos código a este archivo de texto, se trata de no eliminar esta nueva línea inicial que define un archivo de texto en sí .
fuente