在包含 java.lang.Integer
的集合中,case
似乎表现不一致。
例如,取这个函数
(defn test-case [v]
(case v
[1 -1] :one
[1] :two
:default))
用 [1 -1]
或 [1]
作为参数调用它会产生预期结果,用 [(int 1)]
(> :one
)调用它也会产生预期结果。但是,对于两个元素,这不再起作用
(test-case [(int 1) (int -1)])
> :default
考虑到 (= [1 -1] [(int 1) (int -1)])
> true
,这对我来说似乎是一个错误。
我遗漏了什么吗?
这使得 Clojure 版本 1.10.1.547
进行了测试。
编辑:现在才看到这个相关的问题 case-fails-for-vectors-with-negative-numbers。对此表示歉意。