Lua 表: 一個有意思的特性

  折騰了半天,還以爲發現了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

 

如有誰能提供對上述特性的官方文檔說明,筆者感激不盡!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章