从unpack到lua版本的坑
来源:互联网 发布:淘宝哪买psv好 编辑:程序博客网 时间:2024/05/21 22:21
最近要实现一个可变参数的函数,使用到了unpack,写完代码测试的时候,提示出错了,unpack为nil。
于是网上搜了一圈,发现又是一个坑,跟lua版本有关。
在这里记录下,避免后面再踩。
unpack
lua 5.1及之前的版本中,unpack作为全局函数使用,可以直接
unpack(arg)
而5.2之后,unpack被移了到table下面,于是直接unpack就会导致报错,新的调用应该为:
table.unpack(arg)
同时修改的还有另外一个:arg
以前 ... 可以在函数内直接使用arg来处理,但是5.1之后,就需要自己手动变换成arg了
需要这样做:
local arg = { ... }print(arg[1])
提供一种兼容的方法:
function test( ... )if arg ~= nil thenarg = { ... }endif unpack ~= nil then -- 5.1及之前的版本print(unpack(arg))else -- 之后的版本local arg = { ... }print(table.unpack(arg))endend
其他
其他修改参考:
http://blog.codingnow.com/2015/01/lua_53_update.html
另外,cocos2dx 使用的lua版本,可以在lua.h头文件里查看:
#define LUA_VERSION"Lua 5.1"#define LUA_RELEASE"Lua 5.1.5"#define LUA_VERSION_NUM501#define LUA_COPYRIGHT"Copyright (C) 1994-2012 Lua.org, PUC-Rio"#define LUA_AUTHORS "R. Ierusalimschy, L. H. de Figueiredo & W. Celes"
0 0
- 从unpack到lua版本的坑
- lua的unpack函数
- Lua -- unpack
- Lua之UnPack
- Lua UnPack函数用法
- Lua中的unpack( )函数
- Lua——unpack
- lua之 unpack
- Lua之unpack函数
- Lua UnPack函数用法
- lua struct.pack struct.unpack
- 从C/C++到Lua
- Lua从编译到使用
- 【从C++过渡到Lua】
- 【从C++过渡到Lua】
- cocos2dx 3.15 lua和c++版本 将win32项目打包到android平台遇见的坑与处理办法
- lua学习笔记之浅淡unpack()函数
- git版本控制从某个版本恢复到之前或者之后的版本的方法
- 像素翻转
- 9个常用iptables配置实例
- 在ubuntu下使用apktool反编译APK以及jarsigner签名apk
- hibernate hql语句中条件参数中包含特殊字符单引号' 的处理办法
- 你知道RxJava也可以实现AsyncTask吗?
- 从unpack到lua版本的坑
- jQuery 遍历 - 同胞
- linux中使用随机数
- PHP内存缓存Memcached类实例
- 从一道面试题来认识java类加载时机与过程
- 认识JVM
- 用安卓内置的MediaPlaye类实现一个简单的音乐播放器
- connect_timeout interactive_timeout net_read_timeout net_write_timeout wait_timeout
- java 大数类使用及案例