Lua封装复制Table并不关联
2015-11-29 17:51
447 查看
Lua中Table直接赋值会进行地址传递,关联两个Table,一个改变另外一个也改变
返回值是10,TableOld随着TableNew的改变而改变
下面的函数是为了返回一个与传入参数数值一样但不会改变原参数的Table
EX:
返回值还是1,是两个毫不相关的Table
local tableOld = {1,3} local tableNew = tableOld tableNew[1] = 10 print(tableOld[1])
返回值是10,TableOld随着TableNew的改变而改变
下面的函数是为了返回一个与传入参数数值一样但不会改变原参数的Table
function CopyLuaTable( t ) function copy( t, res ) for k,v in pairs(t) do if type(v) ~= "table" then res[k] = v else res[k] = {} copy( v, res[k] ) end end end local res = {} copy( t, res ) return res end
EX:
local tableOld = {1,3} local tableNew = CopyLuaTable(tableOld) tableNew[1] = 10 print(tableOld[1])
返回值还是1,是两个毫不相关的Table
相关文章推荐
- Mootools 1.2教程 函数
- autoit InputBox 函数
- 文件遍历排序函数
- 详解Lua中的表的概念及其相关操作方法
- Oracle 函数大全[字符串函数,数学函数,日期函数]第1/4页
- Lua编程示例(二):面向对象、metatable对表进行扩展
- ASP下经常用的字符串等函数参考资料
- PostgreSQL教程(五):函数和操作符详解(1)
- DOS批处理 函数定义与用法
- asp Chr 函数 数字转字母的方法
- 把Lua编译进nginx步骤方法
- Lua脚本自动生成APK包
- Lua中的元表(metatable)、元方法(metamethod)详解
- Lua中的metatable介绍
- Lua中ipair和pair的区别
- Lua中的函数精讲笔记
- 浅谈Lua的面向对象特性
- 详解Lua中的变量相关知识点
- Lua脚本语言入门笔记