请分享您的想法,参加 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的通知。

现在补丁包含了测试。

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

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