gpt4 book ai didi

c - Lua table.getn() 返回 0?

转载 作者:太空狗 更新时间:2023-10-29 16:50:53 29 4
gpt4 key购买 nike

我已将 Lua 嵌入到我的 C 应用程序中,并试图弄清楚为什么要通过以下方式在我的 C 代码中创建一个表:

lua_createtable(L, 0, numObjects);

并返回到 Lua,当我调用以下时将产生零结果:

print("Num entries", table.getn(data))

(其中“data”是上面lua_createtable创建的表)

表中显然有数据,因为我可以通过以下方式遍历每个条目(字符串:用户数据)对:

for key, val in pairs(data) do
...
end

但为什么 table.getn(data) 返回零?当我用 lua_createtable 创建它时,我需要在表的元数据中插入一些东西吗?我一直在查看 lua_createtable 的使用示例,但我还没有在任何地方看到这样做....

最佳答案

table.getn(您不应该在 Lua 5.1+ 中使用它。使用长度运算符 #)返回 数组中的元素数 表格的一部分。

数组部分是每个以数字 1 开头并递增直到第一个值为 nil(不存在)的键。如果所有键都是字符串,那么表的数组部分的大小为 0。

关于c - Lua table.getn() 返回 0?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9613322/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com