在lua当中
table只是传递引用,所以不能
用简单的用"="来cop
y两个table的内容,并试图修改一个table中的值。
下面方法实现table copy:
function tools: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