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

前端之家收集整理的这篇文章主要介绍了如何获取Lua表中的条目数?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
听起来像“让我google给你”的问题,但不知何故我找不到答案。 Lua#运算符只对整数键进行计数,table.getn也是如此:
  1. tbl = {}
  2. tbl["test"] = 47
  3. tbl[1] = 48
  4. print(#tbl,table.getn(tbl)) -- prints "1 1"
  5.  
  6. count = 0
  7. for _ in pairs(tbl) do count = count + 1 end
  8. print(count) -- prints "2"

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

解决方法

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

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

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

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

猜你在找的Lua相关文章