在一个表中存储键-值和值-键字典

这个例子可以这样做吗:

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

然后

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

还是应该创建两个分别对应的表?哪种风格更好?

点赞
用户204011
用户204011

对于 key 为整数,value 为其他类型的类似列表的表格,使用单个表格是个不错的选择,特别是加上一些元编程的技巧(见这个答案)。

尽管如此,在那种情况下,你应该使用 ipairs 来迭代它,而不是 pairs

对于类似 map 风格的表格,使用两个表格更好:

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

(因为想象一下,如果你有这个……)

my_table = {
  foo = "bar",
  bar = "baz",
}
2013-09-16 15:37:00