【问题标题】:Storing Key-Value and Value-Key dictionaries in a single table将键值和值键字典存储在单个表中
【发布时间】:2013-09-20 18:53:21
【问题描述】:

例如这样可以吗:

table = { "Mark", "John", "Paul", "Matt", "Chris", ...}

然后

for k,v in pairs(table) do table[v] = k end

或者我应该创建两个单独的表,每对一个?哪一种风格更好?

【问题讨论】:

标签: dictionary lua key-value lua-table


【解决方案1】:

对于键为整数而值与您类似的其他类似列表的表,使用单个表是一个好主意,尤其是上面有一点元魔法(请参阅this answer)。

话虽如此,在这种情况下,您应该使用ipairs 来迭代它,而不是pairs

但是,对于像这样的类似地图的表格,最好使用两个表格:

my_table = {
  foo = "bar",
  spam = "eggs",
  chunky = "bacon",
}

(因为想象一下如果你有这个会发生什么......)

my_table = {
  foo = "bar",
  bar = "baz",
}

【讨论】:

  • 一般来说,使用名为 table 的变量不是一个好主意
  • @hjpotter92 你是对的!我使用它是因为 OP 使用了它,我将编辑我的答案。
  • 感谢您的澄清。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-01-18
  • 2019-08-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多