English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Оператор - это специальный символ, который используется для того, чтобы сообщить интерпретатору выполнять определённые математические или логические операции. Язык Lua предоставляет следующие типы операторов:
Арифметические операторы
Операторы отношений
Logical operators
другие операторы
В таблице ниже приведены часто используемые арифметические операторы в языке Lua, установите значение A в 10, а значение B в 20:
оператор | описание | Пример |
---|---|---|
+ | Добавление | A + B результат 30 |
- | Вычитание | A - B результат -10 |
* | Множество | A * B результат 200 |
/ | Деление | B / A результат 2 |
% | Получение остатка | B % A результат 0 |
^ | Множество степеней | A^2 результат 100 |
- | Минус | -A результат -10 |
Мы можем использовать следующий пример, чтобы лучше понять применение операторов арифметических операций:
a = 21 b = 10 c = a + b print("Строка 1 - значение c равно ", c) c = a - b print("Строка 2 - значение c равно ", c) c = a * b print("Строка 3 - значение c равно ", c) c = a / b print("Строка 4 - значение c равно ", c) c = a % b print("Строка 5 - значение c равно ", c) c = a^2 print("Строка 6 - значение c равно ", c) c = -a print("Строка 7 - значение c равно ", c)
Результат выполнения программы:
Строка 1 - значение c равно 31 Строка 2 - значение c равно 11 Строка 3 - значение c равно 210 Строка 4 - значение c равно 2.1 Строка 5 - значение c равно 1 Строка 6 - значение c равно 441 Строка 7 - значение c равно -21
В таблице ниже приведены часто используемые операторы отношений в языке Lua, установите значение A в 10, а значение B в 20:
оператор | описание | Пример |
---|---|---|
== | Равно, проверяет, равны ли два значения, если равны, возвращает true, в противном случае возвращает false | (A == B) возвращает false. |
~= | Не равно, проверяет, равны ли два значения, если не равны, возвращает true, в противном случае возвращает false | (A ~= B) возвращает true. |
> | Больше, если значение слева больше значения справа, возвращает true, в противном случае возвращает false | (A > B) возвращает false. |
< | Меньше, если значение слева больше значения справа, возвращает false, в противном случае возвращает true | (A < B) is true. |
>= | Greater than or equal to, if the left value is greater than or equal to the right value, it returns true, otherwise it returns false | (A >= B) returns false. |
<= | Less than or equal to, if the left value is less than or equal to the right value, it returns true, otherwise it returns false | (A <= B) returns true. |
We can understand the application of relational operators more thoroughly through the following examples:
a = 21 b = 10 if (a == b) then print("Line 1 - a is equal to b") else print("Line 1 - a is not equal to b") end if (a ~= b) then print("Line 2 - a is not equal to b") else print("Line 2 - a is equal to b") end if (a < b) then print("Line 3 - a is less than b") else print("Line 3 - a is greater than or equal to b") end if (a > b) then print("Line 4 - a is greater than b") else print("Line 5 - a is less than or equal to b") end -- изменить значения a и b a = 5 b = 20 if (a <= b) then print("Line 5 - a is less than or equal to b") end if (b >= a) then print("Line 6 - b is greater than or equal to a") end
Результат выполнения программы:
Line 1 - a is not equal to b Line 2 - a is not equal to b Line 3 - a is greater than or equal to b Line 4 - a is greater than b Line 5 - a is less than or equal to b Line 6 - b is greater than or equal to a
The following table lists the commonly used logical operators in Lua language, with A set to true and B set to false:
оператор | описание | Пример |
---|---|---|
and | Logical AND operator. If A is false, it returns A, otherwise it returns B. | (A and B) is false. |
or | Logical OR operator. If A is true, it returns A, otherwise it returns B. | (A or B) is true. |
not | Logical NOT operator. Opposite to the logical operation result, if the condition is true, logical NOT is false. | not(A and B) is true. |
We can understand the application of logical operators more thoroughly through the following examples:
a = true b = true if(a and b) then print("a and b - условие true") end if (a or b) then print("a or b - condition is true") end print("------------разделительная линия------------") -- изменить значения a и b a = false b = true if(a and b) then print("a and b - условие true") else print("a and b - условие false") end if(not(a and b)) then print("not(a and b) - условие true") else print("not(a and b) - условие false") end
Результат выполнения программы:
a and b - условие true a or b - условие true ------------разделительная линия------------ a and b - условие false not(a and b) - условие true
в таблице ниже перечислены операторы объединения и операторы расчета длины таблицы или строки в языке Lua:
оператор | описание | Пример |
---|---|---|
.. | соединение двух строк | a..b, где a = "Hello " и b = "World", результат вывода "Hello World". |
# | односторонние операторы, возвращающие длину строки или таблицы. | #"Hello" возвращает 5 |
Мы можем лучше понять применение оператора объединения и операторов расчета длины таблицы или строки на следующем примере:
a = "Hello " b = "World" print("соединение строк a и b", a..b) print("длина строки b", b) print("длина строки Test", "Test") print("длина веб-сайта основного учебного ресурса", "ru.oldtoolbag.com")
Результат выполнения программы:
соединение строк a и b Hello World длина строки b 5 длина строки Test 4 длина веб-сайта основного учебного ресурса 14
в порядке убывания:
^ not - (односторонний) * / % + - .. < > <= >= ~= == and or
除了 ^ 和 .. 之外的所有二元运算符都是左连接的。
a+i < b/2+1 --> (a+i) < ((b/2)+1) 5 + x^2 * 8 <--> 5 + ((x^2) * 8) a < y and y <= z <--> (a < y) and (y <= z) -x^2 <--> -(x^2) x^y^z <--> x^(y^z)
Мы можем лучше понять приоритет операторов языка Lua с помощью следующих примеров:
a = 20 b = 10 c = 15 d = 5 e = (a + b) * c / d; -- ( 30 * 15 ) / 5 print("(a + b) * c / d значение операции: ", e) e = ((a + b) * c) / d; -- (30 * 15) / 5 print("((a + b) * c) / d значение операции: ", e) e = (a + b) * (c / d); -- (30) * (15/5) print("(a + b) * (c / d) значение операции: ", e) e = a + (b * c) / d; -- 20 + (150/5) print("a + (b * c) / d значение операции: ", e)
Результат выполнения программы:
(a + b) * c / d значение операции: : 90.0 ((a + b) * c) / d значение операции: : 90.0 (a + b) * (c / d) значение операции: : 90.0 a + (b * c) / d значение операции: : 50.0