Q1: 由于 Clojure 和 ClojureScript 在 java.net.URI
和 goog.Uri
上实现了 clojure.core/uri?
,为什么没有直接在 Clojure 中提供 #uri
edn 扩展?
以下是一个记录如何操作和测试的方法:如何在 Clojure/Script 中安装 #uri 读取扩展
尽管有说明“没有命名空间限定符的读取标签保留给 Clojure”,我认为这是安全的,因为如果 Clojure 最终提供它,那么:(1) 这个实现就会过时并应该被移除;(2) 这个实现意图是核心提供的确切实现。
然而,Borkdude 指出了
- borkdude 问题是,如果你在类路径上有关闭 数据_readers.cljc 的东西,覆盖内置标签是不容易撤销的
- Dustin Getz 哦,所以如果这个扩展最终被作为一个传递依赖项绑定在一些库中
- borkdude是的。所以即使你想移除它,你知道,软件并不是那么容易消亡的
Q2: 因此,我要求有一天在核心提供这个
Q3: 这个实现正确吗?(我的意图是一劳永逸地记录这一点,所以我很感激反馈/评论。)
Q4: transit-clj & transit-cljs 不会读取 java.net.URI 和 goog.Uri(与 clojure.core/uri?
谓词不一致),而是读取为 cct.Uri。为什么是这样?