lua5.1 到 5.3的一些经常会接触到的改动

本文概述了Lua从5.1到5.3版本中的一些关键变动,包括函数运行环境的调整,getfenv和setfenv的移除,module函数的废弃,垃圾回收机制的变化,以及table元表的__mode生效时机。5.3版本引入了整数类型,改变了浮点数的字符串表示,并移除了bit32库,同时table库和math库的接口有所更新。此外,函数的==比较不再适用,调试事件中引入了'tail call'。
摘要由CSDN通过智能技术生成
lua5.1 到 5.3的一些经常会接触到的改动
lua的官方文档,每个版本都有一节叫做"Incompatibilities with the Previous Version",
那里面简要描述了lua在语法、语义层面,标准库层面,CAPI层面上的变化,但是并没有涉及到方方面面,
并且lua的很多细微调整并没有出现在文档中,不过一般不用到太复杂的机制都不用担心。


而下面基本都是来自于这个章节的内容。但是不包含CAPI部分


5.2导致的改变


函数运行环境的概念发生了变化;
getfenv,setfenv被移除,要设置一个函数的运行环境,可以使用_ENV变量(函数的第一个upvalue)或者通过标准库 load来调用函数。
module函数也被废弃。


主动调用垃圾回收器时,如果垃圾回收器已经被关闭,将不会重新开启垃圾回收器。
如果table的key被设置为弱引用, 被称为一种短命的table(ephemeron table),当key不在被引用,那么整个pair都会被移除,
需要特别指出的是
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值