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

 

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值