我正在尝试用另一种语言(例如Ruby)重现Erlang phash的确切行为。有谁知道其实施的细节?
基本上,如果在Erlang中:
erlang:phash(X, n) -> Y
我要那个
Ruby中的phash(X,n) = Y
。
答案 0 :(得分:2)
要查看其工作原理,请查看原始代码:https://github.com/erlang/otp/blob/cbd1378ee1fde835e55614bac9290b281bafe49a/erts/emulator/beam/utils.c#L644
但是你不能在另一种语言中使用phash的“确切”行为 - 只是因为你没有可用的erlang数据类型。 (当然,除非你创建自己的映射)