开发者社区> 问答> 正文

什么时候程序源码文件末尾要有空行? 是怎么规定和考虑的

有的编辑器和工具会检查这个, 有时候会给出提示, 是否有相应的标准规定?

展开
收起
a123456678 2016-06-20 10:52:21 2173 0
1 条回答
写回答
取消 提交回答
  • 这不是一个规定,而是一种约定。

    一些早期的工具(编辑器/解释器/终端……等)会错误地认为:如果一个文件的结尾不是新行(没有回车或换行符)那么它读取到的内容不是正常结束,而是使用 ^Z(即 EOF Mark)结束的。这会导致这些工具不能正常工作。

    一些编辑器,比如 Nano,会自动给每一个文档追加一个新行以避免这个问题。自然而然的,如果一个项目里有人使用了类似 Nano 的编辑器来写代码,他贡献的文件理所当然会有一个新行在结尾。那么制定代码规范的人也就理所当然的要求所有的人遵循这个约定。

    虽然现在的编辑器大都先进到可以无视(自动处理)这个问题,但是留一个空行始终还是有一个巨大的好处。

    假设文件 foo.txt 里的内容就是 foo,结尾没有新行,那么你在终端输出其内容的时候会是这样的:

    $ more foo.txt
    foo $ _
    假设文件 bar.txt 里的内容是 bar,结尾有一个新行,那么你在终端输出其内容的时候就是这样的:

    $ more bar.txt
    bar
    $ _
    留意提示符的位置。

    于是你可以想到,如果把上述两文件连接起来就会是这样的:

    $ cat *.txt
    foobar
    $ _
    但如果它们的结尾都有新行,那就不同了:

    $ cat *.txt
    foo
    bar
    $ _
    Which one do you prefer?

    2019-07-17 19:43:51
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载