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都会被移除,
需要特别指出的是
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都会被移除,
需要特别指出的是