在编写lua脚本时,少不了需要对各种数据进行运算,不同数据之间需要通过运算符进行连接,掌握各种运算符的用法,也算是基本功。
Lua中的运算符,大部分都与其他代码,如 java python 等的相同,但也会有些属于自身的特殊运算符。
下边就让我们一起来学习下吧。
0 分类
lua中的运算符分为以下几种:
- 算术运算符
- 关系运算符
- 逻辑运算符
- 字符串连接
1 算术运算符
lua中的算术运算符如下表
| 运算符 | 说明 |
|---|---|
| + | 加法 |
| - | 减法 |
| * | 乘法 |
| / | 除法 |
| // | 整除,对除数取整,舍去所有小数部分 |
| 指数(幂计算) | |
| % | 取模(求余计算) |
print(10 + 2)
print(10 - 2)
print(10 * 2)
print(9 / 2)
print(9 // 2)
print(9 % 2)
print(10 ^ 2)
执行后输出如下:
12
8
20
4.5
4
1
100.0
2 关系运算符
| 运算符 | 说明 |
|---|---|
| < | 小于 |
| 大于 | |
| <= | 小于等于 |
| >= | 大于等于 |
| == | 等于,当数据类型为 table 时,比较的是对象所在的内存地址 |
| ~= | 不等于 |
当比较的类型为数字
print(10 < 11)
print(10 <= 10)
print(10 > 11)
print(10 >= 10)
print(10 == 10)
print(10 ~= 10)
输出如下
true
true
false
true
true
false
当比较的类型为 table 时
local a = {x=1,y=2}
local b = {x=1,y=2}
local c = b
print(a == b)
print(a == c)
print(b == c)
输出如下
false
false
true
3 逻辑运算符
一般而言,逻辑运算的结果只有两个:真或假。
但在Lua中,如果参与运算的数据不同,其结果可能会有四种情况:
- true
- false
- nil
- 0
| 运算符 | 说明 |
|---|---|
| and | 逻辑与 |
| or | 逻辑或 |
| not | 逻辑非 |
print( nil and 0)
print(0 and nil)
print( nil or 0)
print(0 or nil)
print( not nil)
print( not 0)
- 在 and 运算中,当有数据为 nil 时,结果为 nil;
- 在 or 运算中,当有数据不为 nil 时,结果为非 nil,只有当所有数据都为 nil时,结果才为 nil。
输出如下
nil
nil
0
0
true
false
4 字符串连接
在 Lua 中连接两个字符串时,使用 .. 进行操作。
print("hello" .. " " .. "world")
print(2023 .. "年" .. 9 .. "月" .. 2 .. "日")
输出如下
hello world
2023年9月2日
lua 中也支持对字符串进行格式化操作,如 %d 表示数字,%s 表示字符串等。
print(string.format("%d年%d月%d日", 2023, 9, 2))
输出
2023年9月2日