Ree*_*ett 4 null lua types lua-table
我正在学习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)
Run Code Online (Sandbox Code Playgroud)
(这是表的简化版本,用于测试此错误,但仍会在此处出现)
输出:
string
cobble
nil
table: 8a3b983
Run Code Online (Sandbox Code Playgroud)
craft.sword包含键1和"stick",不1和2.你所做的相当于:
local craft = {}
craft.sword = {}
craft.sword[1] = "cobble"
craft.sword.stick = {}
Run Code Online (Sandbox Code Playgroud)
请注意,在任何时候都没有任何东西存储在craft.sword [2]中.
更一般地,如果使用值而不是密钥,如申报表{ "one", "two", "three" },这将它们分配给数字索引,从1开始.如果您使用声明键和值呢,在{ first = "one", second = "two", third = "three" },这些值存储只在您指定的键,并且没有任何内容自动存储在数字索引中.如果你混合它们,就像你在这里所做的那样 - { "cobble", stick = {} }没有键("cobble")的值会自动分配给数字索引,而执行(stick = {})的值会分配给你指定的键.
表格构造函数下的手册中说明了表声明如何工作的完整规范.
| 归档时间: |
|
| 查看次数: |
511 次 |
| 最近记录: |