Lua:表如何用作哈希键?

时间:2017-07-05 19:51:03

标签: dictionary hash lua-table

当一个表被用作哈希键时,它是否与您打印表时获得的十六进制ID有关?

例如,

obj = {}
print(obj)

您可能会得到table: 153CF5A0之类的内容。该值是否在此表的散列过程中使用?

我注意到如果你创建了两个彼此没有引用的相同表,它们就会散列到不同的东西:

obj1 = {}
obj2 = {}
map = {}

map[obj1] = 'obj1'
map[obj2] = 'obj2'
print(map[obj1]) -- obj1
print(map[obj2]) -- obj2

1 个答案:

答案 0 :(得分:0)

是的,当表用于索引另一个表时,表的内存地址用作散列的键。请参阅source code(表格在默认情况下处理)。