Lua表达式

表达式

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;

你可能感兴趣的:(lua学习)