Здравствуйте!
Нужно скопировать таблицу, так, чтобы изменения сделанные в дубликате не отображались в оригинальном экземпляре.
Использую для этой цели рекурсивную функцию, но связь сохраняется.
Результат "Hi!". Я обескуражен.
Нужно скопировать таблицу, так, чтобы изменения сделанные в дубликате не отображались в оригинальном экземпляре.
Использую для этой цели рекурсивную функцию, но связь сохраняется.
Код |
---|
function main() local t1={} t1.x={} t1.x.y=1 local t2=table_copy(t1) t2.x.z="Hi!" PrintDbgStr(""..t1.x.z) end function table_copy(originalTable) local copyTable = {} for k,v in pairs(originalTable) do if (type(v)==table) then copyTable[k]=table_copy(v) else copyTable[k] = v end end return copyTable end |
Результат "Hi!". Я обескуражен.