虽然lua的table可以当作数组运用,但是在赋值的时候,不是单纯的把值赋值到另一个table,而是把另一个table当作此table的引用,这时候需要使用clone函数,举例如下:
-- example:
-- 1. t2是t1引用,修改t2时,t1会跟着改变
local t1 = { a = 1, b = 2 }
local t2 = t1
t2.b = 3 -- t1 = { a = 1, b = 3 } == t1.b跟着改变
-- 2. clone() 返回t1副本,修改t2,t1不会跟踪改变
local t1 = { a = 1, b = 2 }
local t2 = clone( t1 )
t2.b = 3 -- t1 = { a = 1, b = 2 } == t1.b不跟着改变