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

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (14)

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"

如何获得所有数量而不计算它们?

提问于
用户回答回答于

你已经有了问题中的解决方案--唯一的方法是用pairs(..)

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

用户回答回答于

你可以设置一个元表来跟踪条目的数量,如果经常需要这些信息,这可能比迭代更快。

扫码关注云+社区