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

 

如有谁能提供对上述特性的官方文档说明,笔者感激不尽!

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