在代码文件末尾留下多余空白行的原因是什么?

问题描述 投票:13回答:4

Eclipse和MyEclipse创建新的Java文件,默认情况下,最后一个大括号后带有一个空白行。我认为CodeWarrior几年前做了同样的事情,有些人出于故意或懒惰而在代码中留下了空白行。因此,这似乎至少是中等程度的行为。

[作为一名前人类语言编辑者-主要是编辑报纸,我发现这些行看起来像草率的或意外的,我想不出将它们留在源文件中的原因。我知道它们不会影响以C样式语言(包括Java)进行的编译。拥有这些台词有什么好处,如果有的话,它们是什么?

language-agnostic coding-style history
4个回答
11
投票

这是历史悠久的,与用于文本处理的命令行实用程序中的常见错误有关。 Unix系统上有许多用于处理文本的程序,其中大多数程序都是逐行运行的。当最后一行未以换行符结尾时,可能有或没有任何通用的命令行工具出现异常,但是历史上这种现象非常普遍,以至于其他工具开始警告这种情况。

最后检查vim实际上是无法保存没有以换行符结尾的文件的,甚至可以添加一个,无论是否放在其中。


3
投票

AFAIK,一种好的做法是,每行都以换行符结尾,因为解析代码时,可以使用一个简单的函数读取该代码,该函数将根据这些换行符将文件分成几行。没有空行,因此最后一行以换行符结尾,您将丢失该行上的所有字符。


1
投票

不一定是IMO的历史原因,而是IMO的很好原因:

它可以防止您忘记在文件末尾添加换行符。编译器通常会对此发出警告,并且源代码控制系统也经常会发出警告,并且当您添加换行符来摆脱编译器警告时,该行将显示已更改的行。

简而言之,它减少了潜在的噪声和不必要的SCM差异。


0
投票

[我没有足够的意见要发表,但我想对@Justin Smith声明说:“ [vim会加入]到只添加一个[换行符] 无论是否放在那里, “。

我刚刚检查了vim,尽管它确实有一个,但vim没有显示空白的换行符。如果您打开用vim保存在nano中的文件,nano将在最后显示有一个空白的换行符。所以我决定看看用vim 如果我手动制作新行会发生什么,而nano显示有2条新行

对我来说,这很有意义,因为它就像在文件结束之前关闭行一样>>,就像关闭HTML中的所有标记。

© www.soinside.com 2019 - 2024. All rights reserved.