8.2 库的变更

  • bit32 库废弃了。使用一个外部兼容库很容易,不过最好直接用对应的位操作符来替换它。(注意 bit32 只能针对 32 位整数运算,而标准 Lua 中的位操作可以用于 64 位整数。)

  • 表处理库现在在读写其中的元素时会考虑元方法。

  • ipairs 这个迭代器也会考虑元方法,而 __ipairs 元方法被废弃了。

  • io.read 的选项名不再用 '*' 打头。但出于兼容性考虑,Lua 会继续忽略掉这个字符。

  • 数学库中的这些函数废弃了:atan2coshsinhtanhpowfrexp, 以及 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 已经是这样处理了,但是并没有写在文档里。)