[英]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.