Vector Clojure:使用向量和ref

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

请与refvector一起工作的人帮助我

该向量在每一行中都有一个
(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]