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

时间:2015-07-16 11:27:18

标签: lua

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

  

不推荐使用函数table.getn!

(在Transformice Lua中)

2 个答案:

答案 0 :(得分:17)

使用#

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

答案 1 :(得分:1)

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

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