table.getn已经过时 - 我如何获取数组的长度?

我正在尝试使用 table.getn 在 Lua 中获取数组的长度。但我收到了这个错误:

函数 table.getn 已经被废弃!

点赞
用户1881196
用户1881196

使用 #:

> a = {10, 11, 12, 13}
> print(#a)
4

注意,长度运算符 # 不适用于非数组的表,它仅计算数组部分中的元素数量(具有索引1、2、3等)。

这将无法工作:

> a = {1, 2, [5] = 7, key = '1234321', 15}
> print(#a)
3

这里只有 (1,2和15) 在数组部分中。

2015-07-16 11:36:36
用户1896761
用户1896761

对于实际存在键值对的表格,你可以编写一个简单的函数来计算它们的数量:

function getTableSize(t)
    local count = 0
    for _, __ in pairs(t) do
        count = count + 1
    end
    return count
end
2018-11-13 18:03:19