迷惘的码农。
分类: Java
2008-08-15 11:31:15
我们在这儿列出了当你将程序从Lua 5.0迁移到Lua 5.1时可能发现的不兼容。你能用时当的选项(见文件luaconf.h
)编译Lua以避免大多数不兼容。然而,在下一版Lua中所有这些不兼容选项将被移除。
arg
改为可变参数表达式。(见luaconf.h
中的编译时选项LUA_COMPAT_VARARG
。)
[[string]]
)不允许嵌套。这些情况下课用新语法([=[string]=]
)。(见luaconf.h
中的编译时选项LUA_COMPAT_LSTR
。)
string.gfind
重命名为。(见luaconf.h
中的编译时选项LUA_COMPAT_GFIND
。)
table.setn
。函数table.getn
对应新的取长操作符(#
);使用操作符代替函数。(见luaconf.h
中的编译时选项LUA_COMPAT_GETN
。)
loadlib
重命名为。(见luaconf.h
中的编译时选项LUA_COMPAT_LOADLIB
。)
math.mod
重命名为。(见luaconf.h
中的编译时选项LUA_COMPAT_MOD
。)
table.foreach
和table.foreachi
。可用for循环pairs
或ipairs
代替。
require
从获取路径而不是从LUA_PATH
。
gcinfo
;使用collectgarbage("count")
代替。
luaopen_*
函数(打开库)不能像常规C函数那样直接调用。它们必须像Lua函数那样通过Lua调用。
lua_open
函数被取代以允许用户设置内存分配函数。你能用来自标准库的创建带标准分配函数(基于realloc
)的状态机。
luaL_getn
和luaL_setn
(来自辅助库)。使用代替luaL_getn
,并且没有luaL_setn
的替代物。
luaL_openlib
被取代。
luaL_checkudata
抛出错误。(在Lua 5.0中返回NULL
。)