将元数据添加到对象会返回一个附加了元数据的新对象:
(def plain-data [1 2 3])
(def decorated-data (with-meta plain-data {:url "http://stackoverflow.com"}))
;; returns false
(identical? plain-data decorated-data)
如何从plain-data
恢复原始decorated-data
?
我想做点什么,
(def undecorated-data (with-meta decorated-data nil))
;; how can I make this return true?
(identical? plain-data undecorated-data)
答案 0 :(得分:1)
添加元数据不包装值,它返回附加了元数据的值的克隆 - 没有办法恢复原始的东西。但是,不清楚为什么你需要这样做,如果你需要检查是否相等,请使用=
。