如果我在Clojure中有一个查询给我一组结果,我需要将这些结果发送到一个全局变量,它是一个集合(它可能是空的或者有一个旧的值)。因此,每当我有新结果并且能够在其他地方使用它们时,我需要将结果重新分配给此全局集。任何人都知道如何做到这一点?
答案 0 :(得分:2)
如果您的全局是atom
,例如
(def global (atom #{}))
然后您可以使用reset!
来更改它,例如
(reset! global #{:new :value})
如果global
var直接绑定到一个集合,例如
(def global #{})
您可以使用alter-var-root
更新var中的值。
(alter-var-root #'global (constantly #{:new :value}))
如果您有选择,则应该使用atom
。