【问题标题】:Can I make transient / persist an entire data structure?我可以使瞬态/持久化整个数据结构吗?
【发布时间】:2015-03-13 19:56:03
【问题描述】:

据我从Clojure docs page for transient 得知,在数据结构上调用transientpersistent! 只会作用于该集合对象(向量、散列映射或散列集)。

如果我有一棵对象树,有没有办法递归地获取整个结构的临时副本?然后把整个结构转回来?

【问题讨论】:

  • 您可能不得不使用clojure.walk/postwalk 自己动手。
  • @Alex 如果您将此作为答案发布,我将完全投赞成票
  • @ArthurUlfeldt 发现 clojure.walk 不适用于瞬变。所以你真的必须自己动手。

标签: clojure


【解决方案1】:

正如@Alex 所说,您可能需要推出自己的函数来遍历数据结构。另请注意,没有与assoc-in 平行的assoc-in!,这表明如果您想将assoc-in 转换为嵌套数据结构,您最终也可能会滚动您自己的版本。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-06
    • 2017-09-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-05
    相关资源
    最近更新 更多