【问题标题】:Clojure: Working with vector and refClojure:使用向量和参考
【发布时间】:2017-01-13 19:20:16
【问题描述】:

请使用 refvector 的人帮助我?

这个向量的每一行都有一个(ref {:desc "text" :amount double})

[#<Ref@1cda773e: {:desc "DESC1", :amount 100}
 #<Ref@468dd81: {:desc "DESC2", :amount 200}
 #<Ref@1e95e716: {:desc "DESC3",:amount -50}>]

是否可以将上述所有金额放入一个新向量中,如下所示:[100, 200, -50].

使用 ref 非常困难,我不知道如何访问它们。

【问题讨论】:

标签: vector clojure refs


【解决方案1】:

这是一种方法:

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]

【讨论】:

  • 感谢您的宝贵时间!现在我可以在这里完成了。
  • vec + map 可以替换为 mapv: (mapv #(-&gt; % deref :amount) my-refs) .. 或像这样:(mapv (comp :amount deref) my-refs)
猜你喜欢
  • 2013-04-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-22
相关资源
最近更新 更多