0
从ClojureScript Unraveled:元数据保存用Clojure
只要其导出新数据结构的函数返回 集合与同类型,元数据将被保留;如果类型因转换而改变,则这是 不正确。
然而
(def v (with-meta [0 1 2 3] {:foo :bar}))
;; => [0 1 2 3]
(def sv (subvec v 0 2))
;; => [0 1]
(meta sv)
;; => nil ; where did the metadata?
为什么丢失的元数据? subvec
是否返回与v
相同类型的集合,即矢量?
你看了下句? “......如果类型因变换而改变,那么这就不是真的了。为了说明这一点,让我们看看当我们从矢量派生一个seq或一个子矢量时会发生什么” – muhuk
@ muhuk但是当*类型不*你使用'subvec'。 –