如何在 table 的键中分配多个值?

How do you assign multiple values in a key for a table?

我正在尝试为 table 中的一个变量分配多个值。一种用于字符串名称,另一种用于整数。代码如下:

items = {
potion = "Potion", 100
}

我不知道如何正式地写这个,以及如何调用那些特定的值。 (你们是这么叫的吗?)

io.write(item.potion.1) --> Potion
io.write(item.potion.2) --> 100

(或其他?)

请帮忙。 :我

您可以将这些值分配给由数字或标识符索引的 table:

-- identifiers
items = {
  potion = {name = "Potion", value = 100},
}
print(items.potion.name, items.potion.value)

-- numeric indexes
items = {
  potion = {"Potion", 100},
}
print(items.potion[1], items.potion[2])

我个人更喜欢前一种方法(因为它更易于维护,尽管有点冗长),但任何一种都应该有效。

Lua 允许对多个变量进行多次赋值。

像这样:

potion, value = "Potion", 100

但这不能在 table 定义中完成。

items = {
    potion = "Potion", 100
}

您的代码在这里所做的是将 potion 设置为值 "Potion",然后 , 结束分配。下一个分配是 100,它将分配给默认键,在本例中为 1.

在 a table 中,您以 , 结束每个作业,因此您的 tables 内容等于:

items = {
   potion = "Potion",
   [1] = 100
}

要完成所需的行为,您可以嵌套 tables:

items = {
   potion = {
       "Potion",
       100
   }
}

此示例可以像 items.potion[1] 那样访问,而不像 items.potion.1 那样访问,这是因为 . 符号不能与以数字开头的键一起使用。