Elixir - 具有自定义 equals/hash 函数的 ETS

Elixir - ETS with custom equals/hash function

在 Java 中,可以通过 class 上的 overriding/implementing 方法简单地自定义 equals/hash 函数。

当您想自定义 class 的唯一性时,这非常有用 - 这样您就可以轻松地检查集合中的 'duplicates'。

你会如何在 Elixir 中做同样的事情,特别是在 ETS 中?

完成我需要做的事情的一种方法是创建一个唯一的散列函数(可以 return 任何类型)。每个唯一输入应该只有一个此哈希函数的唯一输出。

然后你可以存储 {hash, val} 元组:

table = :ets.create(:table, [])
:ets.insert(table, {hash(val), val})
:ets.lookup(table, hash(val))