代码之家  ›  专栏  ›  技术社区  ›  Pops Atula

在代码文件末尾多留一个空行的原因是什么?

  •  13
  • Pops Atula  · 技术社区  · 14 年前

    Eclipse和MyEclipse创建新的Java文件,默认情况下,在最后一个关闭括号之后有一个额外的空白行。我认为代码战士在几年前也做过同样的事情,有些人在他们的代码中留下这样的空白行,要么是出于故意,要么是出于懒惰。所以,这似乎至少是一种相当普遍的行为。

    作为一个前人类语言编辑——主要是编辑报纸——我发现那些台词看起来像是草率的或偶然的,我想不出把它们留在源文件中的理由。我知道它们不影响C语言的编译,包括Java。拥有这些生产线有好处吗?如果有,有什么好处?

    4 回复  |  直到 14 年前
        1
  •  11
  •   Justin Smith    14 年前

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

    上一次我检查vim实际上无法保存一个不以换行结尾的文件,甚至可以添加一个文件,不管您是否将它放在那里。

        2
  •  3
  •   Gabriel Ščerbák    14 年前

    当然,最好使用换行符结束每一行,因为在解析代码时,可以使用一个简单的函数读取它,该函数将根据这些换行符将文件拆分成行。如果没有空行,最后一行以换行结尾,则该行上的所有字符都将丢失。

        3
  •  1
  •   Nathan Kidd    14 年前

    这不一定是历史原因,但我认为这是一个很好的原因:

    它可以防止您忘记在文件末尾有一个尾随的换行符。编译器通常会对此发出警告,而源代码管理系统也会发出警告,并且在您添加换行符以消除编译器警告时,该行将显示为已更改。

    简而言之,它降低了噪声和不必要的单片机差异的可能性。

        4
  •  0
  •   apokaliptis    11 年前

    我没有足够的观点可以评论,但是我想说一些关于@justin smith的声明,“[vim会去]以至于添加了一个[新行] 不管你放不放 ,“

    我刚刚在我的Arch VirtualBox中查看了Vim,虽然它确实有一个, VIM不显示空白换行符 . 如果在nano中打开vim保存的文件,nano将显示 有一个空白的换行符 最后。所以我决定看看会发生什么 如果我手动创建一个新行 用vim,nano证明了 有两条新线路 .

    对我来说这很有意义因为 就像在文件结束前关闭行一样 ,就像用html关闭所有标记一样。