2024 Clojure 状态调查 中分享您的想法!

欢迎!请查看 关于 页面了解更多相关信息。

0
Clojure
当函数 clojure.walk/keywordize-keys 和 stringify-keys 被调用时,它们不尊重 Records。在数据结构上调用它们时,数据结构中的任何 Records 将被转换为普通 maps。

例如,

user> (defrecord X [a])
user.X

user> (assoc (X. 1) "thing" 2)
#user.X{:a 1, "thing" 2}

user> (clojure.walk/keywordize-keys (assoc (X. 1) "thing" 2))
{:a 1, :thing 2}

user> (type (clojure.walk/keywordize-keys (assoc (X. 1) "thing" 2)))
clojure.lang.PersistentArrayMap

2 个答案

0

评论由:alexmiller

提议的补丁似乎对非纪录类有着其他影响。例如,有序映射会保持其有序性,而当前则不会。这可能或可能不是所希望的,但的确是一个比账单暗示的行为改变更广泛的变化。

stringify-keys 的变化甚至有效吗?看起来不那么有效,当直接查看它时,应用它会导致测试失败。

0
参考: https://clojure.atlassian.net/browse/CLJ-2505 (由 andrewmcveigh 提出)
...