【问题标题】:Space after if, while, etc (and before the paren)if、while 等之后的空格(以及括号之前)
【发布时间】:2011-09-17 19:43:25
【问题描述】:

大多数编码约定更喜欢在ifwhile 等之后放置一个空格(if (if()。这是有什么特殊原因,还是个人的怪癖?

【问题讨论】:

  • 不使用括号的语言怎么办?

标签: coding-style


【解决方案1】:

我一直以为是为了和函数调用区分开来。

【讨论】:

  • +1 这适用于 JavaScript、Java、C 系列,它们在结构化语句和函数调用中都使用括号。引用 Douglas Crockford 的 JavaScript coding conventions:“函数值与其 ( (左括号) 之间不应使用空格。这有助于区分关键字和函数调用。”
  • 另外,引用Linux kernel style guide:“使用空格的Linux内核样式(主要)取决于函数与关键字的用法。在(大多数)关键字之后使用空格。值得注意的例外是sizeof、typeof、alignof 和 __attribute__,它们看起来有点像函数。”
  • 如果是关键字,则不应有括号。如果语言结构需要括号,则 if 不应该有空格。只是我的意见,但我发现空间使它不那么可读。
  • 它并没有真正影响我的可读性,但它确实让 iff 看起来像一个方法调用。我倾向于把空间放在不习惯的地方。我使用几种不使用大括号开始块的语言。
  • 我更喜欢没有空格,因为它看起来像一个函数调用。对我来说,这似乎更一致,我们不必担心由于现代语法突出显示而混淆两者。
【解决方案2】:

这是一个非常主观的问题,但有代码约定。 Java 中的示例: https://www.oracle.com/java/technologies/javase/codeconventions-whitespace.html

“以下情况应使用空格:...关键字后跟括号...”

while (

for (

但在我看来,对于现代 IDE,这不再是一个关键问题。

我不喜欢在这些情况下添加空格(在 for 等关键字之后,但在函数/方法调用 function() 之后也是如此。 我认为,function () 可读性较差。

【讨论】:

    猜你喜欢
    • 2017-10-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-23
    相关资源
    最近更新 更多