不推荐使用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 - 如何获取数组的长度?的主要内容,如果未能解决你的问题,请参考以下文章

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

lua中,数组子元素

lua中 table.getn(t) #t table.maxn(t) 这三个什么区别?

Lua库-table

lua 中为了批量删除 元素 我写了如下代码

快速体验,学习lua(一种可嵌入c++,c#,android,object-c等并进行互调支持热更新的脚本)的入门调试系列