24

C++では、これを行うことで複数の割り当てを行うことができます

x = y = z = 10;

しかし、それは悪いスタイルだと複数の人が私に言ったので、理由を教えてくれずに使うべきではありません.

なぜこれが悪いスタイルと見なされるのか、誰か説明してもらえますか?

4

3 に答える 3

37

これらの定義で試してみてください:

int x;
bool y;
int z;
x = y = z = 10;

x の値に驚かされます。

于 2012-12-31T22:00:18.137 に答える
29

これは本質的に悪いスタイルではありませんが、多くの場合、行ごとに 1 つの割り当てを行い、コンパイラ オプティマイザに整理させることで、コードをより明確にすることができます。複数割り当てスタイルを使用すると、それx = y = z = 10;が意図的なものなのか、それともx = y = z + 10;. ステートメントごとに常に 1 つの割り当てに制限することで、タイプミスが発生したときに明らかになります。

于 2012-12-31T21:49:07.740 に答える
9

それらがすべて同じ値であることを知っている限り、問題はありません。

例えば

変化

x = y = z = 10;

x = y = z = 15;

はとても簡単です。

ただし、それらが恣意的に同じである場合は、別の割り当てがこれを伝え、テストのために個別に変更する方が簡単です。

x = 10;
y = 10;
z = 10;

x = 10;
y = 15;
z = 10;

ラインを分割するよりも優れています。

重要なのは、次のプログラマー (または 6 か月後の自分自身) にコードを確認するように伝えていることです。

于 2012-12-31T21:59:51.553 に答える