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

 

 

Как уже известно, приоритет операторов определяет очередность их выполнения 

в выражении: операторы, обладающие более высоким приоритетом, выполняются 

раньше операторов с более низким приоритетом. Однако что произойдет, если 

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

приоритета? В данном случае применяются правила ассоциативности операторов, 

определяющих направление операции. Операторы могут обладать либо левой  

(выполняются слева направо), либо правой ассоциативностью (выполняются справа 

налево). Например, рассмотрим следующее выражение: 

b * с / d 

Операторы * и / обладают левой ассоциативностью, поэтому операция умножения 

слева (Ь * с) выполняется первой. Предыдущий пример эквивалентен  

следующему выражению: 

(Ь * с) / d 

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

поэтому выражение 

а = b = с = d 

читается, как «присвоить значение d переменной с, затем присвоить значение с  

переменной Ь, после чего присвоить значение b переменной а», как показано в  

следующем примере: 

а = (Ь = (с = d)) 

Унарные операторы обладают правой ассоциативностью; бинарные операторы  

обладают левой ассоциативностью, за исключением операторов присваивания,  

обладающих правой ассоциативностью. Условный оператор ( ? :) также обладает правой  

ассоциативностью. Ассоциативность операторов достаточно понятна на интуитивном 

уровне, но если сложное выражение вернуло неожидаемое значение, воспользуйтесь 

дополнительными круглыми скобками, чтобы указать желаемый порядок  

выполнения операций. Более подробную информацию по ассоциативности операторов 

в языке ActionScript можно найти в документации от корпорации Adobe. 




BACK NEXT

Сайт является частным собранием материалов и представляет собой любительский информационно-образовательный ресурс. Вся информация получена из открытых источников. Администрация не претендует на авторство использованных материалов. Все права принадлежат их правообладателям