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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了不推荐使用table.getn - 如何获取数组的长度?相关的知识,希望对你有一定的参考价值。

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

不推荐使用函数table.getn!

(在Transformice Lua中)

答案

使用#

> 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)在数组部分。

另一答案

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

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

以上是关于不推荐使用table.getn - 如何获取数组的长度?的主要内容,如果未能解决你的问题,请参考以下文章