8.2 库的变更
bit32
库废弃了。使用一个外部兼容库很容易,不过最好直接用对应的位操作符来替换它。(注意bit32
只能针对 32 位整数运算,而标准 Lua 中的位操作可以用于 64 位整数。)表处理库现在在读写其中的元素时会考虑元方法。
ipairs
这个迭代器也会考虑元方法,而__ipairs
元方法被废弃了。io.read
的选项名不再用 '*
' 打头。但出于兼容性考虑,Lua 会继续忽略掉这个字符。数学库中的这些函数废弃了:
atan2
,cosh
,sinh
,tanh
,pow
,frexp
, 以及ldexp
。你可以用x^y
替换math.pow(x,y)
;你可以用math.atan
替换math.atan2
,前者现在可以接收一或两个参数; 你可以用x * 2.0^exp
替换math.ldexp(x,exp)
。若用到其它操作,你可以写一个扩展库,或在 Lua 中实现它们。require
在搜索 C 加载器时处理版本号的方式有所变化。现在,版本号应该跟在模块名后(其它大多数工具都是这样干的)。出于兼容性考虑,如果使用新格式找不到加载器的话,搜索器依然会尝试旧格式。(Lua 5.2 已经是这样处理了,但是并没有写在文档里。)