Question

Certains outils de style de code recommandent et je me souviens avoir vu des outils de ligne de commande unix d'avertissement de manquer ligne vide.

Quel est le raisonnement pour avoir une ligne vide supplémentaire?

Était-ce utile?

La solution

De nombreux anciens outils se conduisent mal si la dernière ligne de données dans un fichier texte ne se termine pas par un retour chariot ou saut de ligne / nouvelle combinaison de ligne. Ils ne tiennent pas compte de cette ligne telle qu'elle est terminée par ^ Z (EOF) à la place.

Autres conseils

Si vous essayez de concaténer deux fichiers texte ensemble, vous serez beaucoup plus heureux si le premier se termine par un saut de ligne.

En dehors du fait qu'il est une plus belle position du curseur lorsque vous passez à la fin d'un fichier dans un éditeur de texte.

Avoir une nouvelle ligne à la fin du fichier fournit une simple vérification que le fichier n'a pas été tronqué.

Un argument peut également être fait pour les diffs plus propres si vous ajoutez le fichier suivant le même raisonnement que Pourquoi les virgules de fuite autorisés dans une liste

Ce qui suit est copié (et coupé un peu) de la ressource liée:

Changing:

s = [
  'manny',
  'jack',
]

à:

s = [
  'manny',
  'jack',
  'roger',
]

implique seulement un changement d'une ligne dans la diff:

  s = [
    'manny',
    'jack',
+   'roger',
  ]

bat la multiligne plus confuse diff quand on a omis la virgule de fin:

  s = [
    'manny',
-   'jack'
+   'jack',
+   'roger'
  ]

La ligne vide à la fin du fichier apparaît donc que la lecture standard à partir du flux d'entrée se savoir quand mettre fin à la lecture, retourne habituellement EOF pour indiquer que vous avez atteint la fin. La majorité des langues peut gérer le marqueur EOF. Il est là pour cette raison des anciens jours, sous DOS, le marqueur EOF a été la clé F6 ou Ctrl-Z, pour systèmes * nix, il était Ctrl-D.

La plupart, si pourrez lire tous, jusqu'au marqueur EOF de telle sorte que la fonction de bibliothèque d'exécution de la lecture de l'entrée saura quand arrêter d'aller plus loin. Lorsque vous ouvrez le flux pour le mode Append, il effacera le marqueur EOF et écrire passé, jusqu'à fin est explicitement appelé dans lequel il insère le marqueur EOF à ce moment-là.

anciens outils attendaient une ligne vide suivie marqueur EOF. De nos jours, les outils peuvent gérer la ligne vide et l'ignorer.

De même, lorsque vous modifiez le fichier et le code à un certain ajoute la fin du fichier - diff (au moins git diff dans coniguration standard) montrera que vous avez modifié la dernière ligne, alors que la seule chose que vous avez réellement fait - a ajouté une nouvelle ligne symbole. Ainsi, les rapports cvs deviennent moins pratique.

Certaines langues définissent leur fichier d'entrée en termes de lignes d'entrée, chaque ligne d'entrée est une série de caractères terminée par un retour chariot. Si leur grammaire est ainsi définie, la dernière ligne valide du fichier doit se terminer par un retour chariot trop.

Il est à cause de la définition de ce qu'est un fichier texte est. Lorsque vous créez un nouveau fichier texte dans un environnement unix, le contenu de ce fichier est nouveau caractère de ligne '\ n'

Sans cela, le fichier est pas vraiment identifié comme un fichier texte. Maintenant, une fois que nous ajoutons le code à ce fichier texte, son de ne pas enlever cette nouvelle ligne initiale que définit un fichier texte lui-même .

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top