使用表格的内容作为关键字

fin*_*nnw 10 lua

有没有一种简单的方法来创建类似字典的集合,即

  1. 表可以用作键
  2. 具有相同内容的表被视为等效(而不是默认指针比较)

例如之后

t = createCustomTable()
k1 = {'a','b','c'}
k2 = {'a','b','c'}
t[k1] = true
Run Code Online (Sandbox Code Playgroud)

t[k2]应该评估true.
另外t本身应该是可用作以同样的方式的关键.

没有任何方法可以做到这一点

  1. 重新实现哈希表
  2. 转换k1k2字符串?(这就是我目前正在做的事情.)

Stu*_*ley 4

将两个表序列化为字符串是Roberto Ierusalimschy(Lua首席架构师)在《Programming in Lua 2nd Edition》中推荐的按内容索引的解决方案。

如果所有关键表都是字符串数组(没有嵌入空值),则可以使用table.concat(t,'\0'). (显然,如果您想要独立于索引的标识,则需要对表进行排序。)