使用新的#:default.namespace{,,,}
语法编写的映射没有包含文件位置作为元数据。
给定这段代码
(require '[clojure.tools.reader :as reader])
(require '[clojure.tools.reader.reader-types :as reader-types])
(defn sample [s]
(with-open [r (java.io.StringReader. s)]
(meta (reader/read (reader-types/indexing-push-back-reader (reader-types/push-back-reader r) 1)))))
这个EDN字面量没有解析出位置元数据
(sample "#:ns{ :key :val }") ; => nil
与这两个不同,它们如预期的那样获得了位置元数据
(sample "{ :key :val }") ; => {:line 1, :column 1, :end-line 1, :end-column 14}
(sample "{ :ns/key val }") ; => {:line 1, :column 1, :end-line 1, :end-column 16}