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

时间:2019-04-16 17:20:15

标签: arrays lua local-variables

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

items = {
potion = "Potion", 100
}

我不知道如何正式编写该代码,以及如何调用这些特定值。 (你这样称呼吗?)

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

(或其他?)

请帮助。 :我

2 个答案:

答案 0 :(得分:6)

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

-- 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])

我个人更喜欢前一种方法(因为它虽然更冗长,但更易于维护),但任何一种都应该起作用。

答案 1 :(得分:1)

Lua允许对多个变量进行多次分配。

像这样:

potion, value = "Potion", 100

但是不能在表定义中完成。

items = {
    potion = "Potion", 100
}

您的代码在做什么,就是将potion设置为值"Potion",然后,结束分配。下一个分配是100,它将分配给默认键,在这种情况下为1

在表的旁边,每个作业都以,结尾,因此表的内容等于:

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

要实现所需的行为,您可以嵌套表:

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

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