花括号的这个约定是什么名字?

时间:2010-12-15 16:28:10

标签: java conventions curly-braces

我对开发人员的数量感到有点困惑,我看到在类名或方法下面用花括号编写方法和类。他们遵循什么惯例?

Sun clearly states,正确的声明是:

// this declaration follows sun's conventions
class Sample extends Object {

    Sample(int i, int j) {
        ....
    }
}

越来越多的我认为这被宣称为(甚至在书中):

// this declaration follows a convention I cant identify
class Sample extends Object 
{

    Sample(int i, int j) 
    {
        ....
    }
}

而且我知道一个会议只是一个惯例,只要你遵循一个惯例,一切都很好。我只是在寻找后一声明遵循什么约定的答案?

7 个答案:

答案 0 :(得分:28)

这是一种称为ANSI样式的标准样式约定。除了Java之外,它在其他语言中也很常见。

答案 1 :(得分:11)

正如你所说,你已经看到了很多东西 - 这不是使它成为一个公约本身,无论是否有一个单一的来源或名称的约定?这很容易描述,我认为它不需要特定的归属。维基百科的"indent style"页面称它为Allman Style或ANSI样式,但坦率地说,我已经使用它多年没有听到这个名字,我不认为知道这个名字会改变任何关于我编码的方式:)

与诸如命名公共类型和方法之类的约定不同,大括号位置对使用代码的编译版本的开发人员没有影响......因此,对于不同的项目和公司来说,对此有不同的看法是可以的(IMO)。 ..同样是否使用空格或制表符,用于缩进等的空格数量。我怀疑这就是为什么你看到更多关于支撑(可能是私有变量)的变化而不是常规的其他方面。

答案 2 :(得分:6)

请参阅:http://en.wikipedia.org/wiki/Indent_style

Syrion已将其确定为ANSI风格,Sun遵循K& R风格的支架放置。

Tangent:现在我知道被诅咒的风格被称为Whitesmiths style

答案 3 :(得分:4)

我更喜欢第二种约定,因为右括号将直接位于开头的下方,因此更容易找到。

答案 4 :(得分:3)

后者看起来像Allman indent style ,它在C ++中非常流行,但我还没有看到它在Java中经常使用。

答案 5 :(得分:2)

第二个约定也是Visual Studio的默认缩进样式(因此很常见),适用于C#

答案 6 :(得分:1)

第一个会议节省了宝贵的空间。无论如何,括号匹配由编辑完成。