【问题标题】:Lua: Saving and opening a two dimensional table indexed by keyLua:保存和打开按键索引的二维表
【发布时间】:2019-08-21 09:46:12
【问题描述】:

如果我的问题中的语义错误,我们深表歉意,但下面的代码应该可以解释我的目标是什么。

我创建了一个像这样的表格:

local a1 = {}
a1.hammer = {
  price = 10,
  quantity = 5,
  category = "tools",
}
a1.saw = {
  price = 15,
  quantity = 4,
  category = "tools",
}
a1.screwdriver = {
  price = 4,
  quantity = 12,
  category = "tools",
}

打印此表的内容给出:

 {hammer = {price = 10,
                                      quantity = 5,
                                      category = "tools"},
                            saw = {price = 15,
                                   quantity = 4,
                                   category = "tools"},
                            screwdriver = {price = 4,
                                           quantity = 12,
                                           category = "tools"}} 

问题一:我如何获取螺丝刀的价格(即一桌一桌的字段)

问题 2: 我该怎么做:

  1. 将表 a1 保存到文件中
  2. 下次运行应用程序时打开文件并导入表

注意:local a2 = a1 为 a2 返回 nil,而不是将 a1 的引用分配给 a2。这里有一个问题...

【问题讨论】:

  • Re 1:我猜你已经知道如何访问表的字段了。然后再做两次。
  • 你能显示成功将锤子的价格分配给变量 x 的代码行吗?这似乎很明显,但对我不起作用。本地 a2 = a1 似乎也没有成功地将 a1 的引用复制到 a2。 a2 返回 nil。
  • 我不是在问如何按值复制与按引用复制。那是无关紧要的。

标签: lua lua-table


【解决方案1】:

@卢克·艾莉森

我可能会回答你的第一个问题:

问题 1:如何获取螺丝刀的价格(即字段 一桌一桌)

你可以试试这个代码:

打印(a1["螺丝刀"]["价格"])

结果 = 4。

至于第二个问题,你应该看看上面 cmets 中的链接。

希望对您有所帮助。

【讨论】:

  • 谢谢,我发现 a1.screwdriver.price 似乎也可以使用 :)
  • 感谢您接受我的回答!真的很感激。
猜你喜欢
  • 2020-12-26
  • 2019-09-15
  • 1970-01-01
  • 2020-12-19
  • 1970-01-01
  • 2020-06-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多