为什么一行中的多个作业被认为是不好的风格?

时间:2012-12-31 21:31:27

标签: c++ operators

在C ++中,您可以通过执行此操作来执行多项任务

x = y = z = 10;

然而有很多人告诉我这是一种糟糕的风格,我不应该在没有给出理由的情况下使用它。

有人可以向我解释为什么这被认为是一种不好的风格吗?

3 个答案:

答案 0 :(得分:22)

尝试使用这些定义:

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

对x的价值感到惊讶。

答案 1 :(得分:17)

它本身并不是坏的风格,但你通常可以通过每行只做一个赋值并让编译器优化器对事物进行排序来使代码更清晰。如果您使用多重赋值样式,则有时可能不清楚x = y = z = 10;是否是故意的,或者它是否是x = y = z + 10;之类的拼写错误。通过始终将自己限制为每个语句中的一个赋值,可以在出现拼写错误时使其显而易见。

答案 2 :(得分:7)

只要您知道它们都应该是相同的值,就没有问题。

e.g。

改变

x = y = z = 10;

x = y = z = 15;

很容易。

但是,如果它们是任意相同的,则单独的分配会传达这一点,并且更容易单独更改以进行测试。

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

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

比不得不分手更好。

关键是你告诉下一个程序员查看代码(或者你自己在6个月内)。