Vector Clojure:使用向量和ref
请与ref和vector一起工作的人帮助我 该向量在每一行中都有一个Vector Clojure:使用向量和ref,vector,clojure,refs,Vector,Clojure,Refs,请与ref和vector一起工作的人帮助我 该向量在每一行中都有一个(ref{:desc“text”:amount double}): 以下是一种方法: user=> (def data [{:desc "DESC1", :amount 100} {:desc "DESC2", :amount 200} {:desc "DESC3",:amount -50}]) #'user/data user=> (def my-refs (map #(ref %) data)) #'user/m
(ref{:desc“text”:amount double})
:
以下是一种方法:
user=> (def data [{:desc "DESC1", :amount 100} {:desc "DESC2", :amount 200} {:desc "DESC3",:amount -50}])
#'user/data
user=> (def my-refs (map #(ref %) data))
#'user/my-refs
user=> (vec (map #(-> % deref :amount) my-refs))
[100 200 -50]
你试过deref了吗?是的,我试过了。很难访问每一个参考文献获取数量并在向量中转换感谢你!现在我可以在这里完成。
vec
+map
可以替换为mapv
:(mapv-(>%deref:amount)我的参考文献)
。或者像这样:(mapv(comp:amount-deref)我的参考文献)
user=> (def data [{:desc "DESC1", :amount 100} {:desc "DESC2", :amount 200} {:desc "DESC3",:amount -50}])
#'user/data
user=> (def my-refs (map #(ref %) data))
#'user/my-refs
user=> (vec (map #(-> % deref :amount) my-refs))
[100 200 -50]