一:算数运算符

注意Lua中没有 +=,-=,++这些运算符
+:加
-:减
*:乘
/:除 
%:余
^:幂
-:负

Lua中没有float,double等类型,所有数字都是number类型,所以计算所得数字是多少就是多少
Lua(七)——运算符_热更新

Lua中+只能用作数字计算,不能用作字符串连接
 
Lua(七)——运算符_Lua 热更新_02


二:关系运算符

==:等于
~=:不等于
>=:大于等于
<=:小于等于
>:大于
<:小于

Lua(七)——运算符_Lua 热更新_03


三:逻辑运算符

and:逻辑与
or:逻辑或
not:逻辑非

Lua(七)——运算符_热更新_04

Lua中没有三目运算符,但是可以利用函数的传值特性模拟出三目运算符:
Lua(七)——运算符_热更新_05
这样写比较麻烦,可以利用and与or的短路特点将Lua中的三目表达式写为这样result=a and b or c
Lua(七)——运算符_Lua 热更新_06
严谨点来说这样会出现一个bug,但其实在应用中并不会出现这种bug:
——b为true时
a为true,a and b为true,结果为b
a为false,a and b为false,结果为c
——b为false时
a为true,a and b为false,结果为c
a为false,a and b为false,结果为c
发现当b为false时,即使a为true结果也会是c
解决方法如下:
因为b和c并没有判断的意义,他们本应该都为true,所以可以将b和c放入表中,这样即使{nil}也是true
最后演变为:(a and {b} or {c})[1]
但是在实际应用中b和c也本应该都为true,所以a and b or c也可以!
Lua(七)——运算符_Lua 热更新_07


四:字符串连接运算符

注意和算术运算符区分开
Lua(七)——运算符_Lua 热更新_08


五:获取长度运算符

#:获取字符串或者表的长度
——获取字符串长度
获取的是字节长度(一个汉字占两个字节)
Lua(七)——运算符_热更新_09

 

——获取表长度
#只能获取用数组方式初始化的表,由此可以推断出表的参数为可变参数时,arg可以用#获取到长度是因为Lua内部将它定义为一个数组类型
Lua(七)——运算符_热更新_10