gpt4 book ai didi

types - 表中的 Lua 表显示为 Nil

转载 作者:行者123 更新时间:2023-12-05 00:28:18 26 4
gpt4 key购买 nike

我正在学习在 Lua 中编写代码并遇到我的代码问题,这是我第一次使用表格,每当我在另一个表格中调用特定表格时,我的类型为 nil 并且打印表格不显示表格: 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)

(这是表格的简化版本,为了测试这个错误但它仍然出现在这里)

输出:
string
cobble
nil

table: 8a3b983

最佳答案

craft.sword包含 key 1"stick" ,不是 12 .你所做的相当于:

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 = {} ) 会分配给您指定的键。

the manual under Table Constructors 中解释了表声明如何工作的完整规范。 .

关于types - 表中的 Lua 表显示为 Nil,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19100748/

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