我意识到这条规则可能因公司的编码标准而异,但总的来说,这是首选的?
在行注释后添加空格:
int foo = Bar(quux + 1); // compensate for quux being off by 1
foo = Bar(quux + 1) # compensate for quux being off by 1
行注释后没有空格:
int foo = Bar(quux + 1); //compensate for quux being off by 1
foo = Bar(quux + 1) #compensate for quux being off by 1
我无法在网上找到关于编码风格的任何。我的猜测是,包括空格是所有语言的首选风格,但我想要一些“确凿的证据”来确认或否认这一点。
答案 0 :(得分:29)
我在大大小小的项目上用大量语言开发了大约10年的软件。我还没有看到有人故意不使用空间。在事物的方案中它并不重要(毕竟,我们都知道那些是注释并且可以阅读它们),但我认为无空间版本看起来类似于注释掉的代码并且需要额外的毫秒脑力确认这是一个评论: - )
答案 1 :(得分:22)
Python的官方风格指南PEP 8非常清楚这个问题:
块的每一行 注释以#和单个空格开头(除非它是缩进的 文本 在评论内部。)
和
内联 注释应与语句中至少两个空格分隔。 它们应该以#和单个空格开头。
这证实了每个人的轶事证据,但我认为这是第一个按要求引用“某些官方或其他公布的编码标准”的答案; - )。
答案 2 :(得分:19)
在过去的24年中,我专门开发和维护了C,C ++,Pascal,BASIC,Java,Perl,Objective C,Bourne shell,bash,csh,tcsh和68K,PowerPC和x86的汇编代码。 。在这段时间里,我注意到了一些事情......
带有前导空格的注释比没有空格的注释多出1000倍。由于匆忙打字,评论中缺少前导空格通常是拼写错误。
我不记得在没有空格的专业书籍或手册中看到过示例代码中的注释。
我认识的唯一一位经常在评论中省略领先空间的专业开发人员使用不使用空格的非西方表意文字系统而长大。
我从来没有见过一个正式的公司编码风格,告诉人们在评论中省略领先的空间。
总而言之,我会说绝大多数证据表明,在评论之后的空格是首选。
答案 3 :(得分:5)
我刚遇到StyleCop's SA1005 rule,其中声明:
当a时违反此规则 单行注释不会开始 只有一个空间。例如:
private void Method1() { //A single-line comment. // A single-line comment. }
评论应以前导斜杠后的单个空格开头:
private void Method1() { // A single-line comment. // A single-line comment. }
由于StyleCop在某种程度上是微软产品,我认为这符合关于行注释中空格的官方编码标准。
答案 4 :(得分:2)
我已经找到了用Java评论的标准(根据维基百科)。这应该是“与Sun Microsystems Javadoc标准一致”:
/** * Registers the text to display in a tool tip. The text * displays when the cursor lingers over the component. * @param text the string to display. If the text is null, * the tool tip is turned off for this component. */
所以我开始认为标准是一个空间。 此外,所有其他示例都有一个空格。
答案 5 :(得分:1)
我主要避免在一行代码的末尾发表评论,因为这些评论会在结束时挂起,并且在扫描时不太容易解析。但是,当我有充分的理由时,我喜欢使用两个空格来分隔代码和注释(然后在注释标记之后添加一个空格)。它只是让眼睛更容易......
考虑:
int top; // Index of the top of the stack.
与
int top; // Index of the top of the stack.
从主观上看,似乎两个空格可以更容易地分解代码和不代码。
答案 6 :(得分:0)
Google C ++样式指南需要两个空格https://github.com/google/styleguide/blob/gh-pages/cpplint/cpplint.py#L3014
即int foo = 1337 // bar
答案 7 :(得分:0)
Google Java Style Guide Formatting section要求在评论的两边放置一个空格:
4.6.2水平空格
除了语言或其他样式规则所要求的内容之外,除了文字,注释和Javadoc之外,单个ASCII空间也仅出现在以下位置。
...
- 在双斜杠(
醇>//
)的两侧开始一行结束注释。这里允许使用多个空格,但不是必需的。