<< Click to Display Table of Contents >> Navigation: Multi-Protocol MasterOPC Server > Руководство по языку Lua 5.1 > Язык и синтаксис > Операторы > Присваивание |
Оператором присваивания в Lua является символ ’=’. Кроме того Lua поддерживает параллельное присваивание (то есть может быть присвоено несколько переменных в одном выражении). В общем случае, оператор присваивания выглядит как список переменных, символ ’=’ и список выражений. Элементы списков указываются через запятую:
a=b --присваивание переменной a, значения b
a,b=c,d --присваивание переменным a и b, значений переменных c и d
Перед выполнением присваивания список переменных согласовывается по длине со списком выражений. Если список справа длиннее, то его лишние элементы просто отбрасываются. Если короче, то недостающие позиции дополняются значениями nil. Если список операторов оканчивается вызовом функции, то перед согласованием все возвращаемые оттуда значения вставляются в правый список (за исключением случаев, когда вызов взят в скобки; см. Выражения ).
Перед выполнением присваивания вычисляется значение всех выражений. Код
i = 3
i, a[i] = i+1, 20
означает, что переменной a[3] присваивается значение 20, потому что i в выражении a[i] имеет то же самое значение, что и в момент вычисления выражения i+1. Аналогично, строка
x, y = y, x
задает обмен значений x и y, а строка
x, y, z = y, z, x
циклически переставляет значения x, y и z.