【问题标题】:Benefits of stripping trailing white spaces?去除尾随空格的好处?
【发布时间】:2010-08-16 10:16:12
【问题描述】:

我养成了从源文件中删除尾随空格的习惯。事实上,我有我的编辑器自动执行此操作。我通过使用 git 养成了这个习惯;它创造了我坚持的习惯。

我的问题与我无法为这种行为辩护的事实有关。我可以理解,在某些领域,例如网页设计师,它可能会影响他们的最终结果。但是对于程序员来说,我们能从中得到什么?我们不能把它留在里面吗?

【问题讨论】:

    标签: process standards whitespace conventions


    【解决方案1】:

    我也喜欢修剪空白。这样做没有技术要求,但它有一些优势:

    • 当光标换行时,在许多编辑器中尾随空格会让人恼火,因为当您从较长的行变为较短的行时,您可能会进入行的“尾随空格区域”,需要额外的击键才能到达该部分你想编辑
    • 这可能会导致您的编辑器显示一个本来不需要的水平滚动条,从而迫使您向右滚动以确保没有丢失文本

    然而,最重要的是(恕我直言)在整个源代码中使用一致的格式(间距、缩进、大括号样式...)。这使代码更易于阅读,并避免重新格式化时出现较大差异(如果始终正确格式化,则无需重新格式化)。

    因此,我建议让格式化程序在您保存时自动运行(或至少在每次提交时)。这样,尾随空格可以作为副作用被消除:-)。

    【讨论】:

    • 在上述原因中,我认为您在一致性方面提出了一个很好的观点,以减少较大的差异。
    【解决方案2】:

    您没有说您使用的是什么语言,但在 C 语言中,尾随空格会影响宏。

    考虑:

    #define FNORD() \
       something complicated here
    

    \ 仅在它是行中的最后一个字符时才有效 --- 所以它后面的空格会导致它中断。

    【讨论】:

    • +1 好点,同样的概念可以应用于其他情况。例如,在 ruby​​ 中,您可以使用 \ 在多行中包含一个字符串。
    • Perl 和 sh/bash 也使用反斜杠来继续一行,并且会遇到同样的问题。 Perl 和 sh/bash 中的“此处文档”也是如此。
    • 当然,如果你真的想要 here-document 中的尾随空格,你不想去掉它。但幸运的是我不必在 bash 中编程......
    【解决方案3】:

    Jeff Atwood 帖子的必填链接。

    Whitespace: The Silent Killer

    【讨论】:

      猜你喜欢
      • 2011-08-28
      • 2019-12-16
      • 2021-10-22
      • 2022-06-15
      • 1970-01-01
      • 2011-10-02
      • 2017-01-22
      • 1970-01-01
      • 2015-04-27
      相关资源
      最近更新 更多