表达式
1.算术运算符
算数运算符有:+
(加)、-
(减)、*
(乘)、/
(除)、^
(指数)、%
(取模)和-
负号。
2.关系运算符
关系运算符有:<
(小于)、>
(大于)、<=
(小于等于)、>=
(大于等于)、~=
(不等于)、==
(等于)。
3.逻辑运算符
逻辑运算符有:and
(与)、or
(或)、not
(非)。
(1)对于and
,当第一个操作数为假时,返回第一个操作数,否则返回第二个操作数。
(2)对于or
,当第一个操作数为真时,返回第一个操作数,否则返回第二个操作数。
x = x or v; // 如果x不为nil或不为false就返回x,否则返回v;
4.字符串连接操作符
字符串连接操作符..
用来连接两个字符串,当后一个为他类型时会转为字符串,例如:
print("Hello"..520); // 输出为Hello520
// 以上是先将520转化为字符串,然后再与字符串"Hello"做连接操作
5.table构造式
构造式是用来创建和初始化table表达式的,是Lua中特有的一种表达式。构造式如下:
t = {}; // 最简单的构造式
a = {x = 10,y = 20};// 具有初始化记录风格的table构造式
在构造一个table的时候,如果不给table一个key,那么默认的key值就是从1开始的,例如:
// 1.相关于星期的table
t = {"Monday","Tuesday","Wndnesday","Thursday","Friday","Saturday","Sunday"};
// 等价于C++/C中的数组
t = {};
t[1] = "Monday",
t[2] = "Tuesday",
t[3] = "Saturday",
...
t[7] = "Sunday"
// 2.包含不用类型key值的table
t = {
name = "美女",
age = 18,
"美女背后的男人1",
"美女背后的男人2"
};
// 等价于C++中的结构体赋值
t = {};
t.name = "美女";
t.age = 18;
t[1] = "美女背后的男人1";
t[2] = "美女背后的男人2";
// 注意:删除一个table的元素,只需要给它赋值为nil就可以了,例:
t[1] = nil;