- 二元运算符:+ - * / ^ (加减乘除幂)
- 关系运算符:< > <= >= == ~=
这些操作符返回结果为 false 或者 true;==和~=比较两个值,如果两个值类型不同, Lua 认为两者不同;nil 只和自己相等 - 逻辑运算符: and or not
逻辑运算符认为 false 和 nil 是假(false),其他为真,0 也是 true. and 和 or 的运算结果不是 true 和 false,而是和它的两个操作数相关。
a and b -- 如果 a 为 false,则返回 a,否则返回 b
a or b -- 如果 a 为 true,则返回 a,否则返回 b
not 的结果一直返回 false 或者 true
print(not nil) --> true
print(not false) --> true
print(not 0) --> false
print(not not nil) --> false
- 连接运算符
字符串连接,如果操作数为数字,Lua 将数字转成字符串
print("Hello " .. "World") --> Hello World
print(0 .. 1) --> 01
- 优先级
- 表的构造
构造器是创建和初始化表的表达式。表是 Lua 特有的功能强大的东西。最简单的构 造函数是{},用来创建一个空表。可以直接初始化数组:
days = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"}
Lua 将"Sunday"初始化 days[1](第一个元素索引为 1),用"Monday"初始化 days[2]…
不管用何种方式创建 table,我们都可以向表中添加或者删除任何类型的域,构造函 数仅仅影响表的初始化
w = {x=0, y=0, label="console"}
x = {sin(0), sin(1), sin(2)}
w[1] = "another field"
x.f = w print(w["x"]) --> 0
print(w[1]) --> another field
print(x.f[1]) --> another field
w.x = nil -- remove field "x"