折騰了半天,還以爲發現了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
如有誰能提供對上述特性的官方文檔說明,筆者感激不盡!