lua数组无法正确获得长度(使用nil元素时)

# 看下面的几个例子, 就知道元素出现nil时,没法正确获得数组的长度,长度是按某种规律来出现的(具体啥规律得熟悉lua源码才能知道)

local tblTest5 =
{
    1,
    nil,
    2,
}
print(table.getn(tblTest5))

结果3

 

local tblTest6 =
{
    1,
    nil,
    2,
    nil
}
print(table.getn(tblTest6))

结果1

 

local tblTest7 =
{
    1,
    nil,
    2,
    nil,
    3,
    nil
}
print(table.getn(tblTest7))

结果3

 

local tblTest8 =
{
    1,
    nil,
    2,
    nil,
    3,
    nil,
    4,
    nil
}
print(table.getn(tblTest8))

结果1

 

【结论】

# lua table作为数组时,不要使用nil元素,这样会带来很多不确定性

 

【参考】

Lua中获取table长度的方法_Lua_脚本之家 (jb51.net)

lua中#,getn, maxn获取数组的长度的陷阱_程序员黄老师的博客-CSDN博客_lua 数组长度

Lua编码Tips及常用自定义函数 - 简书 (jianshu.com)

Lua 的 # 获取长度 - 简书 (jianshu.com)

 

posted @ 2022-06-11 15:55  yanghui01  阅读(258)  评论(0编辑  收藏  举报