运算符是告诉解释器执行特定数学或逻辑操作的符号。 Lua语言内置运算符丰富,并提供以下类型的运算符 -
本教程将逐一解释算术,关系,逻辑和其他杂项运算符。
1. 算术运算符
下表显示了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
|
2. 关系运算符
下表显示了Lua语言支持的所有关系运算符。 假设变量A=10 ,变量B=20 ,然后 -
运算符
|
描述
|
示例
|
==
|
检查两个操作数的值是否相等,如果相等,则条件变为真。
|
(A == B) 结果为false
|
~=
|
检查两个操作数的值是否相等,如果值不相等则条件变为true 。
|
(A ~= B) 结果为true
|
>
|
检查左操作数的值是否大于右操作数的值,如果是,则条件变为true 。
|
(A > B) 结果为false
|
<
|
检查左操作数的值是否小于右操作数的值,如果是,则条件变为true 。
|
(A < B) 结果为true
|
>=
|
检查左操作数的值是否大于或等于右操作数的值,如果是,则条件变为true 。
|
(A >= B) 结果为false
|
<=
|
检查左操作数的值是否小于或等于右操作数的值,如果是,则条件变为true 。
|
(A <= B) 结果为true
|
3. 逻辑运算符
下表显示了Lua语言支持的所有逻辑运算符。 假设变量A=true ,变量B=false ,则 -
运算符
|
描述
|
示例
|
and
|
逻辑与运算符。如果两个操作数都不为零,则条件成立。
|
(A and B) 结果为false
|
or
|
逻辑或运算符。 如果两个操作数中的任何一个不为零,则条件变为真。
|
(A or B) 结果为true
|
not
|
逻辑非运算符。用于反转其操作数的逻辑状态。 如果条件为真,则逻辑非运算符将为false 。
|
!(A and B) 结果为true
|
4. 杂项运算符
Lua语言支持的其他运算符包括连接和长度。
编号
|
描述
|
示例
|
...
|
连接两个字符串
|
如果a 为Hello ,b 为World ,a..b 将返回Hello World 。
|
#
|
返回字符串或表长度的一元运算符。
|
#"Hello" 将返回 5
|
5. Lua运算符优先级
运算符优先级确定表达式中的术语分组。 这会影响表达式的计算方式。 某些运算符的优先级高于其他运算符; 例如,乘法运算符的优先级高于加法运算符 -
例如,x = 7 + 3 * 2 ; 这里x 赋值为13 ,而不是20 ,因为运算符 * 的优先级高于+ ,所以它首先乘以3 * 2 然后再加上7 。
此处,具有最高优先级的运算符显示在表的顶部,具有最低优先级的运算符显示在底部。 在表达式中,将首先评估更高优先级的运算符。
类别
|
操作符
|
关联性
|
一元
|
not # -
|
右到左
|
连接
|
..
|
右到左
|
乘法
|
* / %
|
左到右
|
加法
|
+ -
|
左到右
|
关系
|
< > <= >= == ~=
|
左到右
|
相等
|
== ~=
|
左到右
|
逻辑与
|
and
|
左到右
|
逻辑或
|
or
|
左到右
|
|
请发表评论