首页 > 代码库 > Lua chapter 2
Lua chapter 2
1、算术运算符: "^"表示指数,"%"求模
如:
print(9^0.5); --> 表示9的平方根
x = 3.14567;
print(x%1); --> 获取小数部分
print(x - x%1); --> 获取整数部分
print(x - x%0.01); --> 获取精确到小数点后两位的结果,没有做四舍五入处理
2、关系运算符,对于table,userdata,函数,Lua做引用比较,只有当它们引用同一个对象时,才相等
如:
a = {};
a.x = 1;
b = {};
b.x = 1;
c = a;
其结果是: a==c, a~=b . "~=" 表示不等于
3、逻辑操作符 and 和 or 都是短路求值,在需要时,才会去评估第二个值。检测到哪个值,就返回哪个值
如:
print(5 and 4); --> 因为检测5是真,继续检测4,所以返回4
print(6 or nil); --> 6是真,所以直接返回6
print(not 4); --> 操作符not的结果永远只返回 true 或是 false
4、 一些常用写法
1) x = x or v; -- 如果x是nil,则赋值 v
2)
x=10;
y=20;
max = x>y and x or y;
-- and的优先级高于or, 所以也可以看出(x>y and x) or y, 类似于 x>y?x:y
print(max);
5、table 的构造式
如: days = {"Sun","Mon","Tue"}, 会自动将days[1]初始化为 "Sun", 注:下标从1 开始。
如果要让索引从0 开始,可以这样 days = {[0] = "Sun","Mon","Tue"},这样就从0开始索引
如:
print(9^0.5); --> 表示9的平方根
x = 3.14567;
print(x%1); --> 获取小数部分
print(x - x%1); --> 获取整数部分
print(x - x%0.01); --> 获取精确到小数点后两位的结果,没有做四舍五入处理
2、关系运算符,对于table,userdata,函数,Lua做引用比较,只有当它们引用同一个对象时,才相等
如:
a = {};
a.x = 1;
b = {};
b.x = 1;
c = a;
其结果是: a==c, a~=b . "~=" 表示不等于
3、逻辑操作符 and 和 or 都是短路求值,在需要时,才会去评估第二个值。检测到哪个值,就返回哪个值
如:
print(5 and 4); --> 因为检测5是真,继续检测4,所以返回4
print(6 or nil); --> 6是真,所以直接返回6
print(not 4); --> 操作符not的结果永远只返回 true 或是 false
4、 一些常用写法
1) x = x or v; -- 如果x是nil,则赋值 v
2)
x=10;
y=20;
max = x>y and x or y;
-- and的优先级高于or, 所以也可以看出(x>y and x) or y, 类似于 x>y?x:y
print(max);
5、table 的构造式
如: days = {"Sun","Mon","Tue"}, 会自动将days[1]初始化为 "Sun", 注:下标从1 开始。
如果要让索引从0 开始,可以这样 days = {[0] = "Sun","Mon","Tue"},这样就从0开始索引
但是Lua不推荐以0作为数组的起始索引,因为大多数内建函数都假设数组起始于索引1
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。