[clojure] 观察器 add-watch

来源:互联网 发布:知我者谓我心忧 编辑:程序博客网 时间:2024/04/30 01:59


    add-watch [reference key fn]

    reference: 绑定的引用

    key:  watch的标识,传入到fn时第一个参数的值

    fn [key identity old new] : 

    (defn echo-watch    [k i-d o-val n-val]    (println k o-val => n-val))
  (def data (atom nil))  (add-watch data :watch1 echo-watch)  (reset! data {:test "change1"})  ;; :watch1 nil => {:test "change1"}  (swap! data merge {:test1 "change2"})  ;; :watch1 {:test "change1"} => {:test "change1" :test1 "change2"}