【发布时间】:2015-01-06 01:05:53
【问题描述】:
这些天,我试图利用 clojure/clojurescript 中的函数哈希来生成唯一的 id,但事实证明,这个函数对于从 cljs 中的 read-string 和 clj 中解析的空向量有非常奇怪的行为。
在 clojure 中,散列函数返回 -2017569654 为空向量和从 read-string 解析的向量
user=> (hash [])
-2017569654
user=> (hash (read-string "[]"))
-2017569654
然而,在 cljs 中,(hash []) 出人意料地返回 0。而 [] 也等于 (read-string "[]")。
cljs.user=> (hash (cljs.reader/read-string "[]"))
-2017569654
cljs.user=> (hash [])
0
cljs.user=> (= [] (cljs.reader/read-string "[]"))
true
有没有人知道是什么原因以及如何在cljs中解决?
【问题讨论】:
标签: hash clojure clojurescript