Lua可以被C/C++ 代码调用,反过来也可以调用C/C++的函数,这使得Lua被广泛应用。Lua由标准C编写而成,代码简洁优美,几乎在所有操作系统和平台上都可以编译,运行。Lua在目前解释型脚本引擎中,速度是最快的,这决定了Lua嵌入式脚本的最佳选择。文章列举lua使用中遇到的小问题,做个汇总。
-- 下面的代码,t2 是 t1 的引用,修改 t2 的属性时,t1 的内容也会发生变化 local t1 = {a = 1, b = 2} local t2 = t1 t2.b = 3 -- t1 = {a = 1, b = 3} <-- t1.b 发生变化 -- clone() 返回 t1 的副本,修改 t2 不会影响 t1 local t1 = {a = 1, b = 2} local t2 = clone(t1) t2.b = 3 -- t1 = {a = 1, b = 2} <-- t1.b 不受影响这里也补充一个深度复制的函数:
function table.deepcopy(object) local lookup_table = {} local function _copy(object) if type(object) ~= "table" then return object elseif lookup_table[object] then return lookup_table[object] end local new_table = {} lookup_table[object] = new_table for index, value in pairs(object) do new_table[_copy(index)] = _copy(value) end return setmetatable(new_table, getmetatable(object)) end return _copy(object) end
参考:http://blog.csdn.net/mycwq/article/details/48765303
版权声明:本文为“没有开花的树”原创文章,未经博主允许不得转载。
原文:http://blog.csdn.net/mycwq/article/details/48765303