Chinaunix首页 | 论坛 | 博客
  • 博客访问: 683687
  • 博文数量: 132
  • 博客积分: 10060
  • 博客等级: 上将
  • 技术积分: 1732
  • 用 户 组: 普通用户
  • 注册时间: 2007-12-21 12:35
个人简介

迷惘的码农。

文章分类

全部博文(132)

文章存档

2013年(1)

2011年(2)

2010年(9)

2009年(41)

2008年(79)

我的朋友

分类: Java

2008-08-15 11:31:15

7 -

我们在这儿列出了当你将程序从Lua 5.0迁移到Lua 5.1时可能发现的不兼容。你能用时当的选项(见文件luaconf.h)编译Lua以避免大多数不兼容。然而,在下一版Lua中所有这些不兼容选项将被移除。

7.1 -

  • 可变参数系统从含有附加参数的表的伪参数arg改为可变参数表达式。(见luaconf.h中的编译时选项LUA_COMPAT_VARARG。)
  • for语句的隐式变量的作用域方面以及对于repeat语句有细微的改动。
  • 长字符串/长注释语法([[string]])不允许嵌套。这些情况下课用新语法([=[string]=])。(见luaconf.h中的编译时选项LUA_COMPAT_LSTR。)

7.2 -

  • 函数string.gfind重命名为。(见luaconf.h中的编译时选项LUA_COMPAT_GFIND。)
  • 当以函数为其第三参数调用时,只要该函数返回nilfalse,则替换串是整个匹配而不是空串。
  • 不赞成使用函数table.setn。函数table.getn对应新的取长操作符(#);使用操作符代替函数。(见luaconf.h中的编译时选项LUA_COMPAT_GETN。)
  • 函数loadlib重命名为。(见luaconf.h中的编译时选项LUA_COMPAT_LOADLIB。)
  • 函数math.mod重命名为。(见luaconf.h中的编译时选项LUA_COMPAT_MOD。)
  • 不赞成使用函数table.foreachtable.foreachi。可用for循环pairsipairs代替。
  • 由于新模块系统,函数中有实质的改变。然而,新行为很大程度上兼容旧的,除了require从获取路径而不是从LUA_PATH
  • 函数具有不同的参数。不赞成使用函数gcinfo;使用collectgarbage("count")代替。

7.3 -

  • luaopen_*函数(打开库)不能像常规C函数那样直接调用。它们必须像Lua函数那样通过Lua调用。
  • lua_open函数被取代以允许用户设置内存分配函数。你能用来自标准库的创建带标准分配函数(基于realloc)的状态机。
  • 不赞成使用函数luaL_getnluaL_setn(来自辅助库)。使用代替luaL_getn,并且没有luaL_setn的替代物。
  • 函数luaL_openlib被取代。
  • 现在,当给定值不是预期类型的用户数据时,函数luaL_checkudata抛出错误。(在Lua 5.0中返回NULL。)
阅读(2039) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~