运算符
2024/4/7大约 2 分钟
运算符
理解
Lua支持下列主要的运算符:
- 算术运算符
- 关系运算符
- 逻辑运算符
- 赋值运算符
还支持 .. 、# 特殊运算符。其中赋值运算符仅支持 =,不支持C语言的+=、++等运算符
算数运算符
--[[
+ 加法
- 减法或者负号
* 乘法
/ 除法
^ 指数
% 取模
]]
print(1 + 2) -- 3
print(5 / 10) -- 0.5 这是Lua不同于c语言的
print(5.0 / 10) -- 0.5 浮点数相除的结果是浮点数
-- print(10 / 0) -- 注意除数不能为0,计算的结果会出错
print(2 ^ 10) -- 打印 1024 求2的10次方关系运算符
注意:
- Lua 语言中“不等于”运算符的写法为:
~=。- 由于 Lua 字符串总是会被 “内化”,即相同内容的字符串只会被保存一份,因此 Lua 字符串之间的相等性比较可以简化为其内部存储地址的比较。其它语言一般需要逐个字节(或按 若干个连续字节)进行比较。
--[[
< 小于
> 大于
<= 小于等于
>= 大于等于
== 等于
~= 不等于
]]逻辑运算符
--[[
and 逻辑与
or 逻辑或
not 逻辑非
]]Lua 中的 and 和 or 是不同于 c 语言的。在 c 语言中and 和 or 只得到两个值 1 和 0,其中 1 表示真,0 表示假。而 Lua 中 and 的执行过程是这样的:
- a and b 如果 a 为 nil,则返回 a,否则返回 b
- a or b 如果 a 为 nil,则返回 b,否则返回 a
a = 10
b = nil
print(a and b) -- nil
print(b and a) -- nil
print(a or b) -- 10
print(b or a) -- 10赋值运算符
-- 简单的赋值运算符,把右边操作数的值赋给左边操作数
=其他运算符
-- 连接两个字符串
..
-- 一元运算符,返回字符串或表的长度
#