设为首页 加入收藏

TOP

Lua基础 表达式
2014-11-24 08:10:22 来源: 作者: 【 】 浏览:1
Tags:Lua 基础 表达式

表达式表示值。在Lua中,表达式包括:数值常量、字符串字面值、变量、单目和双目运算符,函数调用,也包括一些非传统的函数定义和表结构。


1.算术运算符


Lua支持常规的算术运算符:'+', '-', '*', '/', '^', '%', '-'(负)。所有这些运算符都对实数起作用。举个例子,x^0.5, 计算x的平方根, x^(-1/3),计算x的立方根的反数。


在Lua中,'%'运算符定义规则如下:


a%b == a - floor(a/b)*b


对整型参数来说,它表示常规的意义,结果跟第二个参数b符号相同。


对实数来说,它有一些额外的用途。例如,x%1 表示x的小数部分,x-x%1 表示x的整数部分。类似的,x-x%0.01 将x精确到小数点后2位。



2.关系操作符


Lua提供了如下关系操作符:


< > <= >= == ~=


所有这些操作符产生的结果都是true或者false


'=='检查是否相等,'~='检查是否不等。这两个操作符可以作用于任意的两个值。如果要比较的两个值是不同的类型,那么Lua认为它们是不等的。否则,Lua根据它们的类型来比较它们是否相等。特例,nil只等于它本身。


Lua根据引用来比较table, userdata, function,也就是说,只有二者是同一个对象的时候,它们才相等。例如:


a = {}; a.x = 1; a.y = 0
b = {}; b.x = 1; b.y = 0
c = a


执行下上面的代码,你可以得到, a == c, 但是 a ~= b



我们把<, >, <=, >=成为order operator。


order operator只能应用于数值和字符串。Lua根据字母表顺序来比较字符串的大小,字母表的顺序由本地设置决定。非数值和字符串的值只能比较相等或者不相等,不能用于order operator。


当比较两个不同类型的值时,你一定要小心:记住"0"和0是不同的。除此以外,2<15显然是true的,但是"2"<"15"是false的(根据字母表顺序比较)。为了避免不一致的结果,当你将string和number混合使用到order operator时,例如 2<"15",Lua会产生一个error。



】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Java中如何使用freemaker模版进行.. 下一篇自定义实现Hadoop Key-Value

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·C语言中,“指针”用 (2025-12-26 15:20:18)
·在c语言的指针运算中 (2025-12-26 15:20:15)
·C语言-函数指针与函 (2025-12-26 15:20:12)
·求navicat for mysql (2025-12-26 13:21:33)
·有哪位大哥推荐一下m (2025-12-26 13:21:30)