35

NetBeans の熱心なユーザーである私は、新しい変数を導入するときに、変数の宣言と代入を分割するよう提案を受け続けています。思いついた非常に簡単な例として、次の Java 行を見てみましょう。

String someInput = JOptionPane.showInputDialog(null, "- Enter something: "); 

対:

String someInput;
someInput = JOptionPane.showInputDialog(null, "- Enter something: "); 

NetBeans は後者を好むようです (ただし、他の IDE については知りません)。明らかに両方の方法で機能しますが、どちらが「良い習慣」と見なされますか? それとも純粋に個人の好みの問題ですか?

(明らかに、2 つを分割するということは、1 つに結合できた余分な行を意味しますが、それは重要ではありません。)

4

6 に答える 6

40

宣言と代入を連続した行に置くだけなら、それらを分割する理由はありません。割り当てが条件付きである場合、または別のコード ブロックに入れる必要がある場合 (try/catch のように、または割り当てがコンストラクターに入る場合など) にのみ、それらを分割します。

于 2013-04-11T16:22:49.240 に答える
19

初期の静的に型付けされたプログラミングにまでさかのぼる一般的なパターンは、必要なすべての変数をブロックの先頭で宣言し、それらをスコープする必要があり、その後それらの値に代入することです。

そうは言っても、コードの意図を一緒に作業する人や自分自身に 1 年後に明確に伝えることができれば、それほど重要ではありません。

プログラムの構築に対する私たちの伝統的な態度を変えましょう: 私たちの主な仕事はコンピューターに何をすべきかを指示することだと想像する代わりに、私たちがコンピューターに何をさせたいかを人間に説明することに集中しましょう. -- ドナルド・クヌース

于 2013-04-11T16:24:50.877 に答える
3

Netbeans は、コーディングを高速化できるため、これを提案しています。たとえば、この割り当てを検討してください。

final String myString = "somevalue"

次に、実際に値がいくつかに依存することを決定しますboolean

final String myString;
if(something) {
    myString = "somevalue"
} else {
    myString = "someothervalue"
}

あるものから別のものに変換するには、コードヒントを使用して、宣言と代入をこぼし、if...elseテンプレートを使用して、ごくわずかな手順でコードを生成できます。

一般に、無条件に代入する場合、宣言と代入を分割する理由はありません。

于 2013-04-11T16:31:12.067 に答える
0

大したことではないと思います。好きなスタイルを選んで、それを最後まで貫いてください (チームにいる場合は、全員が同じようにコードをレイアウトしていると役に立ちます)。

個人的には、宣言の時点で変数を初期化することを好みます。そのため、私は後者よりも前者を好みます。

于 2013-04-11T16:23:51.173 に答える