如何在 Lua 表格中获取条目数量?


虽然有很多函数和运算符可以用来获取 Lua 中特定表格中整数条目的数量,但没有定义的方法或函数适用于包含非同质数据类型的表格。

让我们考虑一个简单的表格,其中存储了整数值,然后我们将使用两种最常见的方法来查找该表格中的条目数量。

示例

请考虑以下示例 -

 在线演示

t = {}
t[1] = 1
t[2] = 2
t[3] = 3
t[4] = 4
print(#t)

输出

4

但是,让我们考虑这样一种情况:表格中包含非同质数据,而不是同质数据,在这种情况下,# 运算符将导致不一致。

示例

请考虑以下示例 -

 在线演示

t = {}
t["yes"] = 1
t[1] = 1
t[2] = 2
t[3] = 3
print(#t)

输出

3

我们可以清楚地看到,输出导致了不一致,因此我们别无选择,只能编写我们自己的函数来计算表格中存在的条目数量。

示例

请考虑以下代码 -

 在线演示

t = {}
t["yes"] = 1
t[1] = 1
t[2] = 2
t[3] = 3
print(#t)
function tablelength(T)
   local count = 0
   for _ in pairs(T) do count = count + 1 end
   return count
end
print(tablelength(t))

输出

3
4

更新于: 2021-07-19

3K+ 阅读量

开启你的 职业生涯

通过完成课程获得认证

立即开始
广告