Почему несколько присвоений в одной строке считаются плохим стилем?
В С++ вы можете выполнять несколько присваиваний, делая это
x = y = z = 10;
Тем не менее, многие люди говорили мне, что это плохой стиль, и я не должен его использовать, не давая мне повода почему.
Может кто-нибудь объяснит мне, почему это считается плохим стилем?
Ответы
Ответ 1
Это не по своей сути плохой стиль, но вы часто можете сделать код более понятным, выполнив только одно задание на строку и позволяя оптимизатору компилятора разобраться. Если вы используете стиль с несколькими присваиваниями, иногда бывает неясно, был ли x = y = z = 10;
преднамеренным, или это была опечатка для чего-то вроде x = y = z + 10;
. Всегда ограничивая себя одним присваиванием за каждое выражение, вы делаете его очевидным, когда появляются опечатки.
Ответ 2
Попробуйте эти определения:
int x;
bool y;
int z;
x = y = z = 10;
И удивляйтесь значению x.
Ответ 3
Нет проблем, если вы знаете, что все они должны быть одинаковыми.
например.
изменения
x = y = z = 10;
к
x = y = z = 15;
очень просто.
Если, однако, они произвольно одинаковы, отдельные назначения передают это, и их легче изменить индивидуально для тестирования.
x = 10;
y = 10;
z = 10;
to
x = 10;
y = 15;
z = 10;
лучше, чем разбить линию.
Ключ - это то, что вы говорите следующему программисту, чтобы посмотреть на код (или на себя через 6 месяцев).