Lua中的嵌套表显示为Nil。
2013-10-2 14:40:27
收藏:0
阅读:100
评论:2
我正在学习Lua编程,遇到了我的代码问题,这是我第一次使用表格,每当我调用另一个表格中的特定表格时,我会得到类型nil,而打印表格并不会像通常情况下那样显示table:xxxxx(它只是打印一个空白),这意味着我定义表格时可能做错了什么吗?
** 代码:**
local craft = { sword = { "cobble", stick = {} } }
print(type(craft.sword[1]))
print(craft.sword[1])
print(type(craft.sword[2]))
print(craft.sword[2])
print(craft)
(这是一个简化版的表格,测试此错误,但它仍然在这里发生)
** 输出:**
字符串
鹅卵石
空的
table: 8a3b983
点赞
用户1009479
你的 craft 表中的 sword 表具有混合数组部分和哈希部分的混合索引。所以:
local craft = { sword = { "cobble", stick = {} } }
等价于
local craft = { sword = { 1 = "cobble", stick = {} } }
或(stick 是一个字符串索引)
local craft = { sword = { [1] = "cobble", ["stick"] = {} } }
如果你需要把无名表放在索引 2 中,可以这样使用:
local craft = { sword = { "cobble", { stick = {} } } }
-- ^ ^
在我的机器上测试代码的输出:
string
cobble
table
table: 003CA158
table: 003CB0C8
2013-09-30 23:57:14
评论区的留言会收到邮件通知哦~
推荐文章
- 如何将两个不同的lua文件合成一个 东西有点长 大佬请耐心看完 我是小白研究几天了都没搞定
- 如何在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中获取用户配置主目录的跨平台方法
craft.sword包含键1和"stick",而不是1和2。你所做的等同于:local craft = {} craft.sword = {} craft.sword[1] = "cobble" craft.sword.stick = {}需要注意的是,在任何时候都没有存储任何东西在
craft.sword\[2\]中。更一般地说,如果你使用值但不使用键来声明表,如
{ "one", "two", "three" },它们会被分配为数字索引,从 1 开始。如果你使用键和值声明它,如{ first = "one", second = "two", third = "three" },这些值仅存储在你指定的键中,而不会自动存储在数字索引中。如果你像这里所做的一样混合使用它们——{ "cobble", stick = {} }——那些没有键的值("cobble")会自动分配给数字索引,并且那些有键的值(stick = {})会被分配到你指定的键中。关于表声明的完整规范在 [手册的表构造函数章节](http://www.lua.org/manual/5.2/manual.html#3.4.8)中有详细说明。