13

クラス名またはメソッドの下に中括弧を付けてメソッドやクラスを作成している開発者の数に少し戸惑っています。彼らはどのような規則に従っていますか?

Sunは、正しい宣言は次のようになると明確に述べています。

// 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) 
    {
        ....
    }
}

そして、慣習は単なる慣習であり、従う限りすべてが良いことを私は知っています. 後者の宣言が従う規則についての答えを探していますか?

4

7 に答える 7

28

これは、ANSI スタイルと呼ばれる標準スタイル規則です。Java 以外の他の言語でも一般的です。

于 2010-12-15T16:30:07.060 に答える
12

あなたが言うように、あなたはそれをかなり多く見てきました-その規則の単一のソースまたは名前があるかどうかに関係なく、それ自体が規則になるのではないですか? 説明はとても簡単なので、特定の帰属は必要ないと思います。ウィキペディアの「インデント スタイル」ページでは、それをオールマン スタイルまたは ANSI スタイルと呼んでいますが、率直に言って、私はその名前を聞いたことがないまま何年も使用してきました。 :)

public 型やメソッドの命名などの慣例とは異なり、ブレースの場所は、コードのコンパイル済みバージョンを使用する開発者に影響を与えません...したがって、さまざまなプロジェクトや企業がこれに対してさまざまな見方をしても問題ありません(IMO)...同様にスペースを使用するかタブを使用するか、インデントに使用するスペースの数など。それが、規則の他の側面よりもブレース (およびおそらくプライベート変数) のバリエーションが多い理由だと思います。

于 2010-12-15T16:38:38.190 に答える
5

参照: http: //en.wikipedia.org/wiki/Indent_style

SyrionはそれをANSIスタイルとして識別し、SunはK&Rスタイルのブレース配置に従います。

接線:そして今、私は呪われたスタイルがホワイトスミススタイルと呼ばれていることを知っています

于 2010-12-15T16:32:20.697 に答える
5

閉じ角かっこは開き角かっこの真下にあるため、2番目の規則を好みます。これにより、見つけやすくなります。

于 2010-12-15T16:33:38.107 に答える
3

後者は、C ++で非常に人気のあるAllmanインデントスタイルのように見えますが、Javaで頻繁に使用されることはありません。

于 2010-12-15T16:33:20.287 に答える
3

2番目の規則は、C#のVisual Studioのデフォルトのインデントスタイルでもあります(したがって、かなり一般的です)。

于 2010-12-15T16:34:18.110 に答える
1

最初のコンベンションは貴重なスペースを節約します。とにかく、ブラケットの一致はエディターによって行われます。

于 2010-12-15T16:37:10.823 に答える