Ассоциативность

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск

Ассоциативность (от лат. associatioсоединение)

  1. В математике (также сочетательность) — свойство любой операции \circ, такое что для неё выполняется равенство:
    (x\circ y)\circ z=x\circ(y\circ z) для любых элементов x,\;y,\;z.
    Например, для умножения: (x\cdot y)\cdot z = x\cdot (y\cdot z).
  2. В программировании (также очерёдность) ассоциативностью операторов называют последовательность их выполнения (или направление вычисления), реализуемое, когда операторы имеют одинаковый приоритет и отсутствует явное (с помощью скобок) указание на очерёдность их выполнения. При этом различается левая ассоциативность, при которой вычисление выражения происходит слева-направо, и правая ассоциативность — справа-налево. Соответствующие операторы называют левоассоциативными и правоассоциативными.

Например, в языке Python большинство операторов имеет левую ассоциативность, в то время как возведение в степень правоассоциативно:

Правая ассоциативность (вычисление выражения справа-налево), возведение в степень в языке Python:

x ** y ** z == x ** (y ** z)
2 ** 2 ** 3 == 2 ** (2 ** 3) == 256
(2 ** 2) ** 3 == 64

Левая ассоциативность (вычисление выражения слева-направо), побитовый сдвиг в языке Python:

x << y << z == (x << y) << z
2 << 2 << 3 == (2 << 2) << 3 == 64
2 << (2 << 3) == 2 << 8 == 256

[править] См. также

[править] Ссылки

Личные инструменты
Пространства имён

Варианты
Действия
Навигация
Участие
Печать/экспорт
Инструменты
На других языках