微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何获取Lua表中的条目数?

听起来像“让我google给你”的问题,但不知何故我找不到答案。 Lua#运算符只对整数键进行计数,table.getn也是如此:
tbl = {}
tbl["test"] = 47
tbl[1] = 48
print(#tbl,table.getn(tbl))   -- prints "1     1"

count = 0
for _ in pairs(tbl) do count = count + 1 end
print(count)            -- prints "2"

如何获取所有条目的数量而不计数?

解决方法

你已经有问题的解决方案 – 唯一的方法是用对(..)迭代整个表。
function tablelength(T)
  local count = 0
  for _ in pairs(T) do count = count + 1 end
  return count
end

另外,注意“#”运算符的定义比这更复杂一点。让我通过采取这个表说明:

t = {1,2,3}
t[5] = 1
t[9] = 1

根据手册,3,5和9中的任何一个都是#t的有效结果。使用它的唯一理智的方法一个连续部分的数组,没有nil值。

原文地址:https://www.jb51.cc/lua/275201.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐