将Key-Value和Value-Key词典存储在单个表中

问题描述 投票:1回答:1

这可以是例如:

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

然后

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

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

dictionary lua key-value lua-table
1个回答
4
投票

对于类似列表的表,其中键是整数,值是像你的其他值,使用单个表是一个好主意,特别是它上面有一些元魔法(参见this answer)。

话虽这么说,在这种情况下,你应该使用ipairs迭代它,而不是pairs

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

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

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

my_table = {
  foo = "bar",
  bar = "baz",
}
© www.soinside.com 2019 - 2024. All rights reserved.