lua运算符
运算符是一个特殊的符号,用于告诉解释器执行特定的数学或逻辑运算.lua提供了以下几种运算符类型:
- 算术运算符
- 关系运算符
- 逻辑运算符
- 其它运算符
算术运算符
下表列出了lua语言中的常用算术运算符,假设A为10,B为20
操作符 | 描述 | 实例 |
---|---|---|
+ | 加号 | A+B=30 |
- | 减号 | A-B=-10 |
* | 乘号 | A*B=200 |
/ | 除号 | A/B=0.5 |
% | 取余 | A%B=0 |
^ | 乘幂 | A^2=100 |
- | 负号 | -A=-10 |
a = 21
b = 10
print('a+b的值为:', a + b)
print('a-b的值为:', a - b)
print('a*b的值为:', a * b)
print('a/b的值为:', a / b)
print('a%b的值为:', a % b)
print('a^2的值为:', a ^ 2)
print('-a的值为:', -a)
执行结果如下:
关系运算符
下表列出了lua语言中常用的关系运算符,假设A为10,B为20
操作符 | 描述 | 实例 |
---|---|---|
== | 等于,检测两个值是否相等,相等返回true,否则返回false | A == B为false |
~= | 不等于,检测两个值是否相等,相等返回false,否则返回true | A ~= B为true |
> | 大于,检测左边的值是否大于右边的值,大于返回true,否则返回false | A > B为true |
< | 小于,检测左边的值是否小于右边的值,小于返回true,否则返回false | A < B为false |
>= | 大于等于,检测左边的值是否大于等于右边的值,大于等于返回true,否则返回false | A >= B为true |
<= | 小于等于,检测左边的值是否小于等于右边的值,小于等于返回true,否则返回false | A <= B为false |
a = 10
b = 20
if(a == b) then
print('校验== : a等于b')
else
print('校验== : a不等于b')
end
if(a ~= b) then
print('校验~= : a不等于b')
else
print('校验~= : a等于b')
end
if(a > b) then
print('校验> : a大于b')
else
print('校验> : a不大于b')
end
if(a < b) then
print('校验< : a小于b')
else
print('校验< : a不小于b')
end
if(a >= b) then
print('校验>= : a大于等于b')
else
print('校验>= : a不大于等于b')
end
if(a <= b) then
print('校验<= : a小于等于b')
else
print('校验<= : a不小于等于b')
end
逻辑运算符
下表列出了lua中常用的逻辑运算符,假设A的值为true,B的值为false
操作符 | 描述 | 实例 |
---|---|---|
and | 逻辑与操作符,都为true,则返回true,否则返回false | (A and B)为false |
or | 逻辑或操作符,有一个以上为true,则返回true,否则返回false | (A or B)为true |
not | 逻辑非操作符,与原结果相反,如果条件为true,逻辑非返回false | not(A and B)为true |
a = true
b = true
if(a and b) then
print('a and b : true')
else
print('a and b : false')
end
if(a or b) then
print('a or b : true')
else
print('a or b : false')
end
if(not (a and b)) then
print('not(a and b) : true')
else
print('not(a and b) : false')
end
print('-----------------------------------')
a = true
b = false
if(a and b) then
print('a and b : true')
else
print('a and b : false')
end
if(a or b) then
print('a or b : true')
else
print('a or b : false')
end
if(not (a and b)) then
print('not(a and b) : true')
else
print('not(a and b) : false')
end
其它运算符
下表列出了lua中的连接运算符与计算表和字符串长度的运算符,假设a为’Hello’,b为’World’
操作符 | 描述 | 实例 |
---|---|---|
… | 连接运算符,用于拼接两个字符串 | a…b结果为HelloWorld |
# | 一元运算符,返回表或字符串的长度 | #a结果为5 |
a = 'Hello'
b = 'World'
dict = {a,b}
print('a..b : ',a..b)
print('a的长度 : ',#a)
print('b的长度 : ',#b)
print('dict的长度 : ',#dict)
运算符优先级
^ | |||||
---|---|---|---|---|---|
not | -(unary) | ||||
* | / | ||||
+ | - | ||||
… | |||||
< | > | <= | >= | == | ~= |
and | |||||
or |
除了^和…其余二元运算符都是左连接的