Cocos2d-Lua之运算符

一、二元运算符

+  -  *  /  %  ^

^是指数运算。

这里就说一下对于浮点数向上,向下取整和四舍五入取值的方法:

print(7 / 2)
print(math.floor(7 / 2))
print(math.ceil(7 / 2))
print(math.round(7 / 2))

输出结果:

这里写图片描述

可以看到math.floor是向下取整,math.ceil是向上取整,math.round是四舍五入取值。

二、关系运算符

>  >=  <   <=  ==  ~=

这里注意Lua的不等号是“~=”,而不是以往编程语言的“!=”

不同类型之间只能做“==”或者“~=”运算,不能做> >= < <=运算

a = 5
c = "true"
print(a == c)
print(a ~= c)

输出结果:

这里写图片描述

如果:

print(a < c)

这样就会报错,不同类型是不允许比较大小的,同样没有意义的大小比较也会出错,比如:

print(false > true)

这样的运算完全没有意义。

三、逻辑运算符

and  or  not
a = 5
b = 7
c = 9
print(a < b and b < c)
print(a > b or b > c)
print(not (a > b))

输出结果:

这里写图片描述

四、三目运算符

a = b > c and b or c

这个三目运算符和以往常用的三目运算符:

a = b > c ? b : c

这两者的意思是一样一样的。

五、一目运算符

这是一个求长度的运算符:

a = "hello"
b = {1, 2, 3, 4, nil, 5}
c = {1, 2, 3, 4, nil, 5, nil}
print(#a)
print(#b)
print(#c)

这里的“#”就是长度运算符。

输出结果:

这里写图片描述

注意对于变量b这个数组,包括nil在内。对于c这个数组,因为是以nil结尾,所以系统会找到第一次出现nil的地方作为结尾,故这里求得的c的长度就是4。

你可能感兴趣的:(Cocos2dLua)