![]() |
/= и > приоритеты?
Я тут немного в недоумении, просветите пожалуйста, это в других языках тоже так, или это только AS3 отличился:
Код AS3:
Код AS3:
|
Ради интереса провёл тест в AVM1 - не компилирует
Код AS3:
Цитата:
Код AS1/AS2:
Вот так скобки фп расставляет: Код AS3:
Код AS3:
|
wvxvw, по-моему, вполне логично, что операторы присвоения имеют более низкий приоритет перед другими операторами (за исключением , ). Или в чем недоумение заключается? :)
|
Вообще это не должно компилироваться из-за того, что для нет операции деления для числа и Boolean.
|
Цитата:
|
да вроде бы и нет противоречия:
/= присваивает результат от деления на то то, что ему дали, а во втором пример ты ему даешь 1 (10 > 1) зы: результат излишней дружественности AS в части приведения типов Добавлено через 5 минут ззы: кому эти скобки мешали?, имо надо их всегда писать, да и читать проще |
Дада, а вот только инкремент / декремент, которые являются все теми же операциями присвоения работают как раз по-другому ;)
lowka: Выражение внутри while() кастуется к Boolean в любом случае. Вопрос бы о другом, почему операция деления и присвоения ведет себя не так, как операция прибавления и присвоения, например. |
Цитата:
Код AS3:
|
вообще-то они одинаково себя ведут.
a += b + c есть a += (b + c), что есть (a + b) +c, что тождественно a + b + c , а для умножения/деления a*=b + c есть a *= (b + c) что есть a*(b + c), а это есть a*b + b*c. |
lowka, откомпилируйте 2 кода что привел автор и поймёте, что не одинаково.
|
http://help.adobe.com/ru_RU/AS3LCR/F...0.0/index.html
Цитата:
|
|
ОК, тогда надо понимать, что инкремент и декремент ведут себя по-другому потому что унарные и их нельзя разбить на две операции. Ну ладно, будем знать :)
|
wvxvw, ты превращаешься в быдлокодера потихоньку :D
|
Цитата:
|
взрослые компиляторы выдают варнинг при появлении присвоения в выражениях, если присвоение не взято в скобки. таким образом убеждают, что человек не пропустил =. даже так если присвоение единственный оператор.
неправильно: Код AS3:
Код AS3:
|
| Часовой пояс GMT +4, время: 18:24. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.