Lua表构造函数中,nils是必须的吗?

2026-04-01 20:271阅读0评论SEO资源
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计303个文字,预计阅读时间需要2分钟。

Lua表构造函数中,nils是必须的吗?

以下是简化后的代码:

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

我有以下代码:

local ta = { nil, 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”,nil,“b”,nil,“c”}的长度可以是1,3或5.因此,长度运算符将不再为您提供非常有用和具体的结果,它也不会给你垃圾.

Lua表构造函数中,nils是必须的吗?

本文共计303个文字,预计阅读时间需要2分钟。

Lua表构造函数中,nils是必须的吗?

以下是简化后的代码:

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

我有以下代码:

local ta = { nil, 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”,nil,“b”,nil,“c”}的长度可以是1,3或5.因此,长度运算符将不再为您提供非常有用和具体的结果,它也不会给你垃圾.

Lua表构造函数中,nils是必须的吗?