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'。 –