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

欢迎!请参阅 关于 页以了解更多该系统的工作方式。

0
Clojure
如果能对 {{assoc-in}} 进行扩展,让它支持多个键-值对(并且当参数数量为偶数时抛出错误,就像 {{assoc}} 一样)那会很好。


user=> (assoc-in {} [:a :b] 1 [:c :d] 2)
{:a {:b 1}, :c {:d 2}}
user=> (assoc-in {} [:a :b] 1 [:c :d])
IllegalArgumentException assoc-in 在 map/vector 之后期望偶数个参数,找到奇数个参数


*补丁:* clj-1771.patch

*预审者:* Alex Miller

5 个答案

0

评论由: alex+import 发布

附上简单的补丁。我没有找到为 assoc-in 编写的现有测试,但我可以添加,如果需要的话。

0

评论由: viebel 发布

为了与 assoc 保持对称性,我非常希望修复这个工单。

0

评论由: alexmiller 发布

您需要 "if kvs" 检查吗?

应该有测试。

0

评论者:mjg123

抱歉延迟回复——由于某种原因,我没有收到此JIRA的提醒。

补丁现在包括测试。

由于我们有3种可能的结果,因此两个if检查都是必要的
1/ 没有更多的kvs(我们完成了)
2/ 更多的kvs(我们需要递归)
3/ 一系列键但没有值(抛出IAE)

0
参考:https://clojure.atlassian.net/browse/CLJ-1771(由glittershark报告)
...