加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

Lua – 表构造函数中的nils

发布时间:2020-12-14 21:49:19 所属栏目:大数据 来源:网络整理
导读:我有以下代码: local ta = { nil,nil,1,a = 2 }local tb = { [4] = 1,a = 2 }for i = 1,#ta do print('ta['..i..']= ',ta[i])endfor i = 1,#tb do print('tb['..i..']= ',tb[i])end 并获得以下输出: ta[1]= nilta[2]= nilta[3]= nilta[4]= 1 我假设两个表
我有以下代码:

local ta = { nil,nil,1,a = 2 }
local tb = { [4] = 1,a = 2 }

for i = 1,#ta do
  print('ta['..i..']= ',ta[i])
end
for i = 1,#tb do
  print('tb['..i..']= ',tb[i])
end

并获得以下输出:

ta[1]=  nil
ta[2]=  nil
ta[3]=  nil
ta[4]=  1

我假设两个表都应该相同.但它并不完全.

我尝试使用空构造函数创建表,并逐个初始化元素,包括开头的nils.但是与表tb得到了相同的结果.

有什么区别?
我可以手动管理吗?

解决方法

而W.B.大多数是正确的,因为长度运算符对于带孔的数组来说不是很一致,它也不是未定义的.

表的长度在Lua manual中定义为“任何整数索引n使得t [n]不是nil并且t [n 1]是nil;此外,如果t [1]是nil,则n可以是零. “

这意味着{“a”,“b”,“c”}的长度可以是1,3或5.因此,长度运算符将不再为您提供非常有用和具体的结果,它也不会给你垃圾.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读