2024 年 Clojure 调查问卷 中分享您的想法!

欢迎!有关此功能如何工作的更多信息,请参阅 关于 页面。

0
Clojure
已关闭

在包含 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。对此表示歉意。

已关闭,认为是重复问题: case fails for vectors with negative numbers
...