运算符
[TOC]
@date: 2018-3-18
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)
print(b and a)
print(a or b)
print(b or a)
输出:
nil
nil
10
10
赋值运算符
= 简单的赋值运算符,把右边操作数的值赋给左边操作数
其它运算符
.. 连接两个字符串
# 一元运算符,返回字符串或表的长度。
print("hello".." world") -- 输出:hello world
print(#"hello") -- 输出:5