Lua程序设计第二版(笔记) 第三章表达式

Lua的表达式中可以包含数字常量、字面字符串、变量、一元和二元操作符级函数调用。有别于传统的是,表达式中还可以包括函数定义table构造式

1.算术操作符有:二元"+"、"-"、"*"、"/"、"^(指数)"、"%",一元"-(负号)"。

例如:

x^0.5表示计算x的平方根

x^(-1/3)表示计算x的立方根的倒数

取模操作符是根据以下规则定义的:

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


2.关系运算符:< > <= >= == ~=

操作符:==和~= 可应用于任意两个值,如果两个值具有不同类型,Lua就认为它们是不相等。否则Lua会根据它的类型来比较两者。需要注意,nil只与其自身相等。

对于table、userdata和函数,Lua是作为引用比较的。也就是说,只有当它们引用同一个对象时,才认为它们相等。

例如:

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

b = () ;b.x = 1; b.y= 0

c = a

结果是 a==c,a~=b

只能对两个数字和两个字符串作大小性比较。Lua是按照字母次序比较字符串的,具体的字母次序取决于对Lua的区域设置。

数字和字符串之外的其他类型只能进行相等行和不等性比较。

为了避免类型不一致的比较,Lua会在遇到字符串和数字的大小比较时引发一个错误

例如:

2<"15"。


3.逻辑操作符 and or 和 not,所有逻辑操作符将falsenil视为假,其他任何东西视为真。

and: 如果第一个操作数为假返回第一个操作数,否则返回第二个操作数

or: 如果第一个操作数为真返回第一个操作数,否则返回第二个操作数

and 和 or 都是使用"短路求值"也就是说,他们只会在需要时才去评估第二个操作数。

操作符not永远只返回true和false


4.字符串连接: ".." Lua中字符是不可变的值,连接操作符会创建一个新的值,但是不会对原值进行任何修改


5.优先级:(^) >  (not、# - (一元)  ) > ( *、 /、 % ) > ( +、 - )  >  (..) > ( < 、> 、<= 、>=  、-= 、==) > ( and ) > (or)

在二元操作符中,指数操作符"^" 和连接操作符".."是'右结合"的,其他都是"左结合"。

例如:

x^y^z <--> x^(y^z)

6.构造式是用于创建和初始话table的表达式。

最简单的构造式就是一个空构造式{},创建了一个空的table

Lua中数组默认起始位置为1。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值