Я пытался выяснить, будут ли цепочки присвоения и сложные операторы присваивания всегда будут работать предсказуемо справа налево? Пример:Операции смешивания и составные операторы присваивания - Приоритет?
a = b += c
Будет это всегда быть оценены как
a = (b += c)
независимо от того, что другие операторы соединения и порядок операторов я заменить?
Было несколько раз сегодня, когда я колебался, чтобы связать этих разных операторов вместе, не зная точно, как будет оцениваться приоритет. source Я обычно ссылаюсь на неоднозначность, потому что он говорит, что, хотя эти операторы имеют одинаковый уровень приоритета, «оператор, который указан в некоторой строке, будет привязан к его аргументам более жестко (как если бы они были в скобках), чем любой оператор, который указан ниже в строке. " - это говорит о том, что простой оператор назначения может быть «привязан более жестким» до a
& b
, чем оператор составного назначения равен b
и c
в приведенном выше примере.
Спасибо за цитату! – jramm
@ user2864740: 'a * = b + = c' эквивалентно' a * = (b + = c) '(так как они группируются справа налево). –
Почему downvote? –