Найти тему

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

Балуюсь сейчас, как и все, нейронными сетями. И вот такую картинку мне нарисовала сеть по запросу “ассоциативность операторов”. Бессмысленно, но красиво )))
Балуюсь сейчас, как и все, нейронными сетями. И вот такую картинку мне нарисовала сеть по запросу “ассоциативность операторов”. Бессмысленно, но красиво )))

Да уж. Выражение из двух слов, где ни одно из них непонятно ))) Как и выражение в целом. Вот такой он, современный русский язык.

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

Слово “ассоциативность” произошло от латинского “associatio” (соединение, связь).

Слово “оператор” в современном русском языке имеет очень много значений. Но если попробовать перевести, то это получится какая-то штука (или человек), выполняющая операции. А “операция” происходит опять же от латинского слова “operatio” (действие). То есть оператор выполняет некие действия для достижения какой-либо цели.

И тогда выражение “ассоциативность операторов” можно перевести как “связь действий”, или “взаимосвязь действий”. Тоже пока не очень понятно, но хотя бы по русски.

Ну а теперь к сути…

Как известно, в любом языке программирование операторы в сложных выражениях выполняются в очерёдности согласно приоритету операций. Таблицу приоритетов операторов в JavaScript можно найти здесь.

Однако у некоторых операторов одинаковый приоритет (например + и -). Так вот, ассоциативность операторов определяет порядок выполнения операций с одинаковым приоритетом.

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

x = 1 + 3 + 8 - 2;

Здесь сначала к 1 прибавляется 3, в результате получается 4. Затем к результату прибавляется 8, и от полученного результата отнимается 2. То есть выполнение операций в выражении происходит слева направо, и для этих операторов ассоциативность будет “слева направо”.

Однако есть операторы, которые имеют ассоциативность справа налево. Например, это унарные операторы, операторы присваивания и условные тернарные операторы. Пример оператора присваивания:

a = b = c = 10;

Здесь сначала число 10 мы присваиваем переменной с, затем переменной b присваиваем значение переменной с, затем переменной а присваиваем значение переменной b. То есть действия выполняются справа налево.

Кроме того, вы можете изменить ассоциативность операторов с помощью скобок:

x = 1 + 3 + (8 - 2);

Здесь мы сначала от 8 отнимаем 2, ну а затем уже выполняются остальные операции в обычном порядке. И хотя на результат в данном случае это не повлияет, ассоциативность будет уже другой.

На этом всё. Подписывайтесь на канал, чтобы ничего не пропустить.

Наука
7 млн интересуются