Lua06——Lua表达式

221 阅读2分钟

在编写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日