迷惘的码农。
分类: 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。)