Lua复杂表/列表大小

时间:2015-08-18 04:14:47

标签: lua lua-table

我正在尝试查找test[0]

的条目数
test = {}
test[0] = {}
test[0].x = {}
test[0].x[0] = 1
test[0].x[1] = 1
test[0].x[2] = 1
test[0].y = {}
test[0].y[0] = 1

我希望条目table.getn(test[0])test[0].x的{​​{1}}为2,但结果为0.为什么会这样,我需要做些什么来获得我想要的内容为?

2 个答案:

答案 0 :(得分:2)

请注意,Lua 5.0中的table.getn已被#运算符替换,因为Lua 5.1

表的大小仅对表的序列部分有效(即,使用从1到某个数字n的正数字键,并且n是大小)

在此示例中,test[0]只有两个kesy "x""y"。因此,其大小为0

答案 1 :(得分:1)

table.getn和lua 5.1 length operator被定义为在"列表"或数组。你的桌子不是一个。它没有数字指数。

所以结果在lua 5.1中未定义(虽然它在这里为零)和lua 5.0中的0,因为大小被定义为one less the first integer index with a nil value,它是整数索引1

另外值得注意的是,table.getn(test[0].x)将返回2table.getn(test[0].y)将返回0(因为lua数组从1开始)。