迁移到 5.1

lua-users home
wiki

本页面尝试提供比 Lua 5.1 手册中[与 5.0 版本的不兼容性]部分更详细的关于如何从 5.0 迁移到 5.1 的信息。

没有 table.setn() 和 table.getn() 的生活

使用可变参数表达式而不是 'arg'

function catchall( ... )
   for i=1,arg.n do
      print( "Argument #", i, "is", arg[ i ] )
   end

   -- Pass all arguments to another function
   show3( unpack( arg ) )
end

function show3( a, b, c )
   print( a, b, c )
end

catchall( nil, 'two', nil )
--> Argument #    1     is     nil
--> Argument #    2     is     two
--> Argument #    3     is     nil
--> nil     two     nil

function catchall( ... )
   -- Make a new table of values
   local theArguments = { ... }

   for i=1,select( '#', ... ) do
      print( "Argument #", i, "is", theArguments[ i ] )
   end

   -- Pass all arguments to another function
   show3( ... )
end

function show3( a, b, c )
   print( a, b, c )
end

catchall( nil, 'two', nil )
--> Argument #    1     is     nil
--> Argument #    2     is     two
--> Argument #    3     is     nil
--> nil     two     nil

嵌套长字符串或块注释

使用垃圾收集

简单的查找/替换更改

字符串作为“对象”

C API 更改

if (index < 0 && -index <= top)
    index = top+index+1;
my* = luaL_check*(L, index, ...);

使用特定插件或库迁移

新的模块系统


最近更改 · 偏好设置
编辑 · 历史记录
最后编辑于 2007 年 1 月 11 日凌晨 3:50 GMT (差异)