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

欢迎!请查看关于页面了解该工作的更多信息。

0
ClojureScript
In Clojure


user=> (conj {:a 1} '([:b 2] [:c 3]))
执行错误(ClassCastException)在用户/eval3(REPL:1)。
clojure.lang.PersistentVector无法转换为java.util.Map$Entry


但在ClojureScript中


cljs.user=> (conj {:a 1} '([:b 2] [:c 3]))
{:a 1, :b 2, :c 3}


有一个检查,以确保条目满足{{vector?}},但我们可以要求它们满足{{map-entry?}}。事实上,当{{vector?}}不满足时给出的错误消息是:“向map添加元素需要_{map entries}_或_{map条目可序列化}_。”

理由:尽管这项更改会拒绝一些程序,但这些程序是错误的(仅偶然有效),并且,如果移植到Clojure将在这里失败。此外,利用它们是map条目的事实可以访问它们的键和值,这可以使代码更快。(参见CLJS-3116中的利用map条目)

4 答案

0

由:mfikes发表的评论

CLJS-3115.patch通过CI测试(/)

0

由:mfikes发表的评论

CLJS-3115.patch添加到补丁请求(i)

0

由:mfikes发表的评论

CLJS-3115.patch通过试用(/)

0
参考: https://clojure.atlassian.net/browse/CLJS-3115(由mfikes报告)
...