[英]Clojure update-in on two keys and two functions
我正在尝试使用update-in
功能来更新嵌套的哈希图。 但是我想使用differents函数更新两个键的值。 举个例子:
我有这个哈希:
{:1 {:value 0, :active false}, :2 {:value 0, :active false}
我想将密钥:1更新为:
{:1 {:value 2, :active true}, :2 {:value 0, :active false}
有什么方法可以做到这一点?
提前致谢
更新也许我只可以使用assoc
: (assoc my-map :1 {:value 2, :active true})
assoc可以有多个k / v对:
user=> (def m {:1 {:value 0, :active false}, :2 {:value 0, :active false}})
#'user/m
user=> (update-in m [:1] assoc :value 1 :active true)
{:1 {:value 1, :active true}, :2 {:value 0, :active false}}
还有assoc-in
类似于assoc
。 唯一的区别是,您提供了一个键向量而不是一个键。 因此,也许您可以通过一些assoc-in
来传递地图。
或者您使用功能update
(1.7中添加):
(update {:1 {:value 0, :active false}, :2 {:value 0, :active false}
:1 (fn [{:keys [value active]]
(magic value active)))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.