表达式
包括数字常量、字符串常量、变量、一元和二元运算符、函数调用。还可以是非传统的函数定义和表结构。
算术运算符
二元运算符:+-*/^
一元运算符:-(负值)
关系运算符
> < <= >= == ~=
nil只和它自己相等。Lua通过引用比较tables、userdata、functions,即两者表示同一个对象时相等。
逻辑运算符
and or not
and和or的运算结果不是true和false,而是和它的两个操作数相关。
a and b -- 如果a为false,则返回a,否则返回b
a or b -- 如果a为true,则返回a,否则返回b
C语言中的三元运算符
a ? b : c 在Lua中可以这样实现: (a and b) or c
not的结果一直返回false或者true
连接运算符
.. --两个点
优先级:
从高到低的顺序:
^ not - (unary) * / + - .. < > <= >= ~= == and or
表的构造
构造器是创建和初始化表的表达式。表是Lua特有的功能强大的东西。最简单的构造函数是{},用来创建一个空表。
每次调用构造函数,Lua都会创建一个新的table