使用新的#:default.namespace{,,,}
语法编写的map不在元数据中附加文件位置。
给定的这段代码
(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}