Lua table.getn()返回0?
2012-3-8 5:31:13
收藏:0
阅读:115
评论:4
我已经将 Lua 嵌入到我的 C 应用程序中,并正在尝试弄清楚为什么通过以下方法在我的 C 代码中创建的表:
lua_createtable(L, 0, numObjects);
并返回到 Lua,当我调用以下内容时结果为零:
print("Num entries", table.getn(data))
(其中“data”是由上面的lua_createtable创建的表)
显然表中有数据,因为我可以通过以下方式遍历每个条目(字符串:userdata)对:
for key, val in pairs(data) do
...
end
但是为什么 table.getn(data) 返回零?当我使用 lua_createtable 创建表时,是否需要插入某些东西到表的元中?我一直在查看 lua_createtable 的用法示例,但是我没有在任何地方看到过这样的做法...
原文链接 https://stackoverflow.com/questions/9613322
点赞
stackoverflow用户734069
table.getn
(在 Lua 5.1+ 中不应该使用,应该使用长度运算符 #
)返回表格_数组_部分中元素的数量。
数组部分是每个以数字 1 开头并逐渐增加直到第一个值为 nil
(不存在)的键。如果您的所有键都是字符串,则表格的数组部分大小为 0。
2012-03-08 06:07:14
stackoverflow用户1377500
虽然这很耗费资源(对简单的列表而言是O(1),而对于此方法则是O(n)的),你也可以添加一个方法来计算你的map中的元素数量:
function table.map_length(t)
local c = 0
for k,v in pairs(t) do
c = c+1
end
return c
end
a = {spam="data1",egg='data2'}
table.map_length(a)
-- 2
2013-01-17 11:06:29
stackoverflow用户4139145
for k,v in pairs(tbl) do count = count + 1 end
将 tbl 中的键值对遍历一遍,对 count 进行加一操作。
2014-10-13 21:24:19
评论区的留言会收到邮件通知哦~
推荐文章
- 如何在roblox studio中1:1导入真实世界的地形?
- 求解,lua_resume的第二次调用继续执行协程问题。
- 【上海普陀区】内向猫网络招募【Skynet游戏框架Lua后端程序员】
- SF爱好求教:如何用lua实现游戏内调用数据库函数实现账号密码注册?
- Lua实现网站后台开发
- LUA错误显式返回,社区常见的规约是怎么样的
- lua5.3下载库失败
- 请问如何实现文本框内容和某个网页搜索框内容连接,并把网页输出来的结果反馈到另外一个文本框上
- lua lanes多线程使用
- 一个kv数据库
- openresty 有没有比较轻量的 docker 镜像
- 想问一下,有大佬用过luacurl吗
- 在Lua执行过程中使用Load函数出现问题
- 为什么 neovim 里没有显示一些特殊字符?
- Lua比较两个表的值(不考虑键的顺序)
- 有个lua简单的项目,外包,有意者加微信 liuheng600456详谈,最好在成都
- 如何在 Visual Studio 2022 中运行 Lua 代码?
- addEventListener 返回 nil Lua
- Lua中获取用户配置主目录的跨平台方法
- 如何编写 Lua 模式将字符串(嵌套数组)转换为真正的数组?
#
运算符(以及table.getn
函数)有效地返回数组部分的大小(尽管当你有一个包含空洞的表时,语义更加复杂)。它不计算表的哈希部分中的任何内容(例如,字符串键)。