Coding style 这种特殊格式的优点是什么? 我曾见过这种格式用于一些C++代码中逗号分隔的列表(虽然这可以应用到任何语言):

Coding style 这种特殊格式的优点是什么? 我曾见过这种格式用于一些C++代码中逗号分隔的列表(虽然这可以应用到任何语言):,coding-style,Coding Style,我想知道为什么会有人用它来代替更常见的格式,例如: void function (int a, int b, int c ) 从复制上一个参数(行)开始,在末尾添加参数更容易 当你确信第一个参数永远不会改变时,这是很有意义的。我看到的唯一好处是,当你添加一个参数时,你只需要复制并粘贴最后一行,省去了编辑逗号位置等额外的两个按键 恶意 但说真的,有时很难解释格式样式。这主要是个人品味的问题。就我个人而言,我认

我想知道为什么会有人用它来代替更常见的格式,例如:

void function (int a,
               int b,
               int c
              )

从复制上一个参数(行)开始,在末尾添加参数更容易


当你确信第一个参数永远不会改变时,这是很有意义的。我看到的唯一好处是,当你添加一个参数时,你只需要复制并粘贴最后一行,省去了编辑逗号位置等额外的两个按键

恶意


但说真的,有时很难解释格式样式。这主要是个人品味的问题。就我个人而言,我认为这两种形式都有点令人讨厌,除非在行长度方面受到严格限制。

我知道何时将and包装在sql或if语句中,我试图确保and是下一行的开始

如果A和B
和C


我认为这表明C仍然是if的一部分。您显示的第一种格式可能是。但与大多数风格问题一样,最简单的问题是,如果团队决定一种风格,那么就应该坚持下去。

在我看来,这似乎是个人的选择。

快速扫描文件时,很明显,以逗号开头的每一行都是上面一行的延续(与上面缩进更深的线条相比)。这是以下风格的概括:

std::cout << "some info "
    << "some more info " << 4
    + 5 << std::endl;

std::cout这是编写SQL语句时非常常见的编码样式:

SELECT field1
     , field2
     , field3
--   , field4
     , field5
FROM tablename
优点:

  • 允许您轻松添加、删除或重新排列字段,而无需担心最后的尾随逗号
  • 让您可以轻松地注释掉一行(TSQL使用“-”)而不会弄乱语句的其余部分
我认为您不会像在SQL中那样频繁地重新排列函数中的参数顺序,所以这可能只是某些人的习惯


注释其中之一的能力将取决于所使用的特定语言。不确定C++。我知道VB.NET不允许它,但这是因为它需要一个连续字符(^)来跨语句分割语句。< /P> < P>没有理由,我怀疑这只是个人偏好。< /P> 我个人更喜欢第二个

void function (int a,
               int b,
               int c
              )

另一个优点是,在第一个示例中,您可以注释掉B行或C行,并且在语法上保持正确。在第二个示例中,如果您尝试注释掉C行,则会出现语法错误

如果你问我的话,不值得把它弄得那么难看


我所看到的唯一好处是,当您添加一个参数时,您只需复制并粘贴最后一行,从而节省了编辑逗号位置等额外的两个按键


如果要删除最后一个参数,情况也是如此。

当您在末尾添加另一个字段时,添加的单行包含新的逗号,产生了单行添加的差异,这使得在将来某个时间查看更改日志时更容易看到更改的内容。

看起来大多数答案都以aro为中心und能够轻松注释或添加新参数。但似乎在行尾而不是行首添加逗号也能获得相同的效果:

function(
          int a,
          int b,
//          int c,
          int d
        )
您可能会说,您不能对最后一个参数执行此操作,您是对的,但对于另一种形式,您不能对第一个参数执行此操作:

function (
//             int a
           , int b
           , int c
           , int d
          )

因此,折衷的办法是能够注释掉第一个参数,而不是注释掉最后一个参数+能够添加新参数,而无需在前一个最后一个参数中添加逗号。

第二位适用于任何具有“注释到行尾”的语言标记。包括C++、C语言、java、JavaScript、VB等。任何不能忍受悬空的语言,在ListWelw的结尾,VB和VB.NET不会让你任意地在多行上分割语句,所以这种技术将无法工作。并且给出现在的IDE复制最后一行的方式,它可以是一个宝石。(netbeans ctrl+shift+down)我想在很多情况下,都会有一些参数不太可能被更改或删除(例如“记录ID”之类的东西),而且这些参数更可能被列在第一位而不是最后一位。
function(
          int a,
          int b,
//          int c,
          int d
        )
function (
//             int a
           , int b
           , int c
           , int d
          )