1、算数表达式
二元运算符:+ - * / ^
一元运算符:-(负值) 操作数都是实数
2、关系运算符
< > <= >= == ~=操作返回false或true。==和~=比较两个值,如果两个值类型不同,这二者不同。nil只和自己相等。Lua通过引用比较table、userdata、functions。即当且仅当两者表示同一个对象时相等。
3、逻辑运算符
and、or、not。逻辑运算符认为false和nil是假,其他为真。0和空串为真。and的优先级比or高
a and b:如果a为false,返回a,否则返回b
a or b:如果a为true,返回a,否则返回b
a ? b :c等价于(a and b) or c
not的返回结果只有false和true;
4、连接运算符:
.. 两个点:字符串连接,如果操作数为数字,Lua将数字转为字符串。
5、优先级
从高到底^not -(负值)* /+ - (减号)..< > <= >= ~= ==andor除了^和..外所有的二元运算符都是左连接
6、表的构造
构造器是创建和初始化表的表达式,表是Lua特有的功能强大的东西。最简单的构造函数{ },用来创建一个空表。可以直接初始
化数组。Lua表的第一个索引为1。构造函数可以使用任何表达式初始化。
tab = {sin(1),sin(2),sin(4)},表也可以作为record使用,如:a = {x=0,y=0},等价于a = { }; a.x = 0; a.y = 0。在构造函数域中,分隔符逗号可以使用分号代替,通常使用分号来分割不同类型的表元素。如{x=10, y=45;"one","two"}