clojure/core assoc-in

点我查看原文及更多示例

(ns $clojureDoc.core.assoc-in)
;; 使用方式:(assoc-in m [k & ks] v)
;; Associates a value in a nested associative structure, where ks is a
;; sequence of keys and v is the new value and returns a new nested structure.
;; If any levels do not exist, hash-maps will be created.
;;

;; 替换map中键为:a值中键为:b的值中键为:c的值,一层一层深入
(println (assoc-in {:a {:b {:c 1}}} [:a :b :c] 3))
;; => {:a {:b {:c 3}}}

;; 替换索引为1的map中键为:b的值
(println (assoc-in [{:a 1} {:b 2} {:c 3}] [1 :b] 4))
;; => [{:a 1} {:b 4} {:c 3}]

;; 替换索引为3的元素([4 5 6 [7 8 9]])下索引为3的元素([7 8 9])下索引为2的元素([9])的值
(println (assoc-in [1 2 3 [4 5 6 [7 8 9]]] [3 3 2] 0))
;; => [1 2 3 [4 5 6 [7 8 0]]]

;; 索引4的元素不存在,可以增加
(println (assoc-in [1 2 3 4] [4] 5))
;; => [1 2 3 4 5]
;; 但不能“过分了”
;; (println (assoc-in [1 2 3 4] [5] 6))
;; java.lang.IndexOutOfBoundsException

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zhangningboo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值