3.3 逻辑符:跟C一样与(AND),或(OR),非(NOT),不同点在于其运算结果不同于C。
在lua中逻辑假只包含‘false’ 与‘null’,其他包括‘0’都表示真。
a = nil;if(a) then print("a is true")else print("a is false")end
其次在lua中逻辑符结果并不是真或者假而是所判断的值。
a and b // 如果 a 为真,则返回b;反之则返回 a
a or b // 如果 a 为真,则返回a ;反之则返回b
not 则只返回 true 或者 false
看懂 (a and b) or c ;// 功能与c中 a?b:c;一致
3.4 连接符
连接符“ .. ”
功能就跟名字一样,将二个字符链接,如果操作数是数字则转换成字符
例如
print(10 .. 'b') // 显示 10b
print(type(10 .. 'b') //显示 string
3.5 优先级
^
not - (unary)
* /
+ -
..
< > <= >= ~= ==
and
or
3.6 表的构造
构造器是创建和初始化表的表达式。表是 Lua 特有的功能强大的东西。
借用书上的代码,最简单构造表
days = {"Sunday", "Monday", "Tuesday", "Wednesday",
"Thursday", "Friday", "Saturday"}
表中目前我看到二种形式 一种是 键值对 例如:
tab = { ["key"]=1 , ["x"]=2} // 访问他们就是 tab.key ,或者 tab.["key"]
另外一种,类似数组 :
array={ 2 , 3 , 4 , 5} // array[1] =2 ,注意数组下标从 1 开始
muti_type = { 1 , ["key"]="string",2}
在其中,数组模式与键值对是分开标记的(大概)例如 要访问,muti_type中的数字‘2’ ,应该是 muti_type[2]而不是muti_type[3]