不推荐使用table.getn - 如何获取数组的长度?

Hyd*_*per 11 lua

我试图在Lua中获取数组的长度table.getn.我收到此错误:

不推荐使用函数table.getn!

(在Transformice Lua中)

dla*_*ask 19

用途#:

> a = {10, 11, 12, 13}
> print(#a)
4
Run Code Online (Sandbox Code Playgroud)

但请注意,length运算符#不适用于非数组的表,它只计算数组部分中的元素数(索引为1,2,3等).

这不起作用:

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

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


Aus*_*ins 8

对于实际具有键值对的表,您可以编写一个简单的函数来计算它们:

function getTableSize(t)
    local count = 0
    for _, __ in pairs(t) do
        count = count + 1
    end
    return count
end
Run Code Online (Sandbox Code Playgroud)