Руководство по actionscript. часть 2, стр. 017

Подобным образом, если в одном выражении встречаются оператор «меньше чем» (<) и оператор конкатенации (+), операция конкатенации будет выполнена первой. предположим, мы хотим сравнить две строки и отобразить результат сравнения при отладке программы. не зная приоритетов операторов < и +, мы можем по ошибке использовать следующий код:

traceCresult: » + «а» < "b");

Из-за приоритетов операторов < и + код выдаст значение f al se, хотя мы ожидали увидеть несколько иной результат:

result: true

Чтобы определить результат выражения «result: » + «а» < "ь", среда flash сначала выполнит операцию конкатенации (поскольку оператор + обладает более высоким приоритетом, чем <). результатом конкатенации строки "result: " со строкой " а " является новая строка "result: а ". после этого среда выполнения flash сравнивает полученную строку со строкой "ь" и получает значение false, поскольку первый символ строки "result: а" находится дальше по алфавиту, чем символ "ь".

Если вы сомневаетесь в приоритетах используемых операторов или хотите указать другую последовательность выполнения операций, используйте круглые скобки, которые обладают самым высоким приоритетом:

«result: » + («а» < "b") // возвращает: "result: true"

(4 + 5) * 6 // Возвращает 54, поскольку 9 * 6 = 54

Хотя использовать круглые скобки совсем не обязательно, они помогают сделать сложное выражение более читабельным. Выражение:

х > У || У == z // х больше у или у равняется z

может оказаться сложным для восприятия без знания таблицы приоритетов. Оно становится гораздо более понятным, когда расставлены круглые скобки:

(х > у) || (у == z) // Гораздо лучше!

Ассоциативность операторов

Как уже известно, приоритет операторов определяет очередность их выполнения в выражении: операторы, обладающие более высоким приоритетом, выполняются раньше операторов с более низким приоритетом. Однако что произойдет, если в одном выражении встретятся несколько операторов с одинаковым уровнем приоритета? В данном случае применяются правила ассоциативности операторов, определяющих направление операции. Операторы могут обладать либо левой (выполняются слева направо), либо правой ассоциативностью (выполняются справа налево). Например, рассмотрим следующее выражение:

b * с / d

Операторы * и / обладают левой ассоциативностью, поэтому операция умножения слева (Ь * с) выполняется первой. Предыдущий пример эквивалентен следующему выражению:

(Ь * с) / d

Здесь оператор = (оператор присваивания) обладает правой ассоциативностью, поэтому выражение

а = b = с = d

читается, как «присвоить значение d переменной с, затем присвоить значение с переменной Ь, после чего присвоить значение b переменной а», как показано в следующем примере:

а = (Ь = (с = d))

Унарные операторы обладают правой ассоциативностью; бинарные операторы обладают левой ассоциативностью, за исключением операторов присваивания, обладающих правой ассоциативностью. Условный оператор ( ? :) также обладает правой ассоциативностью. Ассоциативность операторов достаточно понятна на интуитивном уровне, но если сложное выражение вернуло неожидаемое значение, воспользуйтесь дополнительными круглыми скобками, чтобы указать желаемый порядок выполнения операций. Более подробную информацию по ассоциативности операторов в языке ActionScript можно найти в документации от корпорации Adobe.

google.com bobrdobr.ru del.icio.us technorati.com linkstore.ru news2.ru rumarkz.ru memori.ru moemesto.ru

Оставить комментарий

Вы должны авторизоваться для отправки комментария.

Полезные ссылки
Случайные записи
  • 15.06.2010">Самоучитель по креативному веб-дизайну. Книга 4, стр.55
  • 04.06.2010">Самоучитель по креативному веб-дизайну. Книга 3, стр.32
  • 08.03.2011">Руководство по actionscript. часть 4, стр. 089
  • 22.08.2012">McAfee собирается защищать автомобили от вирусов
  • 23.01.2011">Руководство по actionscript. часть 1, стр. 004
  • 28.02.2011">Руководство по actionscript. часть 6, стр. 014
  • 05.08.2011">МФУ от Hewlett-Packard – качество и надежность
  • 13.03.2011">Руководство по actionscript. часть 3, стр. 102
  • 10.05.2010">Самоучитель по креативному веб-дизайну. Книга 1, стр.58
  • 17.06.2012">«Лаборатория Касперского» отметила сокращение количества спама
  • 05.10.2010">Форматы векторной графики
  • 13.03.2011">Руководство по actionscript. часть 3, стр. 115
  • 10.03.2011">Руководство по actionscript. часть 4, стр. 019
  • 22.07.2011">Acer Aspire One 532g
  • 17.05.2010">Самоучитель по креативному веб-дизайну. Книга 2, стр.123
Опрос

Какие цвета вы предпочитаете?

View Results

Loading ... Loading ...