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