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

3
我尝试在表格中为一个变量分配多个值。其中一个是字符串名称,另一个是整数。代码应如下所示:

items = {
potion = "Potion", 100
}

我不知道如何正式地写出这个问题,以及如何称呼那些特定的值。(你是这样称呼它们的吗?)

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

(还是其他什么?)
请帮忙。:I

3
你要找的是一个嵌套表,就像 items = { potion = {"药水", 100 } } - Nifim
2个回答

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
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那样。这是因为使用 . 符号不能与以数字开头的键一起使用。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接