Копирование таблиц

Страницы: 1
RSS
Копирование таблиц
 
Здравствуйте!
Нужно скопировать таблицу, так, чтобы изменения сделанные в дубликате не отображались в оригинальном экземпляре.
Использую для этой цели рекурсивную функцию, но связь сохраняется.
Код
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!". Я обескуражен.
 
Всем спасибо. Кавычки в проверке типа забыл)
Код
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
Страницы: 1
Читают тему (гостей: 1)
Наверх