sil*_*lau 4 dictionary vector clojure
我有这张地图
(def m {:a "aaa" :b {:c ["ss" "gg"]}})
Run Code Online (Sandbox Code Playgroud)
我想将其更新为此(将"uu"添加到向量:c):
{:a "aaa" :b {:c ["ss" "gg" "uu"]}}
Run Code Online (Sandbox Code Playgroud)
这就是我想出来的,我讨厌它:
(assoc-in m [:b :c] (conj (get-in m [:b :c]) "uu"))
Run Code Online (Sandbox Code Playgroud)
我应该怎么做?
(update-in m [:b :c] conj "uu")
Run Code Online (Sandbox Code Playgroud)
我认为它的方式是,update-in 让你有,并要求其接收状态的功能存在.此功能(conj此处)还接收剩余参数.所以这里["ss" "gg"]将用"uu"和调用:c.
["ss" "gg" "uu"]没有得到任何初始状态,因此在你的榜样,你都不得不劳动创造的是有一遍.
| 归档时间: |
|
| 查看次数: |
579 次 |
| 最近记录: |