Lua关系操作符
Lua提供了一下关系操作符:
- <
- >
- <=
- >=
- ==
- ~=
对于table,userdata和函数,Lua是作引用比较的。
Lua逻辑操作符
- and
- or
- not
所有的逻辑操作符将false和nil视为假,而将其他的任何东西视为真。对于操作符and来说,如果它的第一个操作数为假,就返回第一个操作数;不然返回第二个操作数。对于操作符or来说,如果它的第一个操作数为真,就返回第一个操作数;不然返回第二个操作数。
“x=x or v”等价于 if not x then x = v end
为了选出数字x和y中的较大者,可以使用以下语句:
max = (x > y) and x or y
多重赋值
a, b, c = 0, 0, 0
在多重赋值中,Lua先对等号右边的所有元素求值,然后才执行赋值。因此利用多重赋值可以交换两个变量。
x, y = y, x(交换x与y)
多重赋值也可用于收集函数的多个返回值
泛型
泛型for循环通过一个迭代器函数来遍历所有值。
迭代文件中每行的(io.lines),迭代table元素的(pairs),迭代数组元素的(ipairs),迭代字符串中单词的string.gmatch等。
变长参数
Lua中的函数可以可以接受不同数量的实参。
1 | function add(...) |
参数表中的三个点(…)表示该函数可接受不同数量的实参。当这个函数被调用时,它的所有参数都会被收集到一起。这部分收集起来的实参称为这个函数的”变长参数”。