折腾了半天,还以为发现了lua的重大bug,没查到相关的资料,估计初学见识不多,记录一下。希望有高手指点一二。
本来想初始化一个二维表,图个方便扩展,不想绕了个圈子。采用以下方式:
N=3
local ratiotab = {}
local temptab = {}
for i = 1,N do
table.insert(temptab,0)
end
for i = 1,N do
table.insert(ratiotab,temptab)
end
打印后,ratiotab的值如下:
0 0 0
0 0 0
0 0 0
此时在后面加一行代码,例如
ratiotab[1][1] = 1
则打印结果为:
1 0 0
1 0 0
1 0 0
同一列的值都改变了!应该是temptab的效果。
如果换成如下赋值方式:
N=3
local ratiotab = {}
for i = 1,N do
table.insert(ratiotab,{0,0,0})
end
此时打印同样全为0,加如上一行代码:
ratiotab[1][1] = 1
则打印结果为:
1 0 0
0 0 0
0 0 0
如有谁能提供对上述特性的官方文档说明,笔者感激不尽!