相关疑难解决方法(0)

Clojure&ClojureScript:clojure.core/read-string,clojure.edn/read-string和cljs.reader/read-string

我不清楚所有这些读字符串函数之间的关系.好吧,很明显clojure.core/read-string可以读取由pr[n]或甚至输出的任何序列化字符串print-dup.很明显,clojure.edn/read-string读取根据EDN规范格式化的字符串.

但是,我从Clojure脚本开始,并不清楚是否cljs.reader/read-string遵守.这个问题是由于我有一个Web服务正在发出以这种方式序列化的clojure代码:

(with-out-str (binding [*print-dup* true] (prn tags)))
Run Code Online (Sandbox Code Playgroud)

那就是产生包含数据类型的对象序列化.但是,这是不可读的cljs.reader/read-string.我总是得到这种类型的错误:

Could not find tag parser for = in ("inst" "uuid" "queue" "js")  Format should have been EDN (default)
Run Code Online (Sandbox Code Playgroud)

起初,我认为这个错误被抛出cljs-ajax但是在测试了cljs.reader/read-string一个rhino REPL后,我得到了同样的错误,这意味着它cljs.reader/read-string本身就被抛出了.它是由maybe-read-tagged-type函数引发的,cljs.reader但不清楚这是因为读者只能使用EDN数据,还是......?

另外,根据与Clojure文档的差异,唯一可以说的是:

The read and read-string functions are located in the cljs.reader namespace
Run Code Online (Sandbox Code Playgroud)

这表明他们应该完全具有相同的行为.

clojure clojurescript edn

26
推荐指数
3
解决办法
8023
查看次数

标签 统计

clojure ×1

clojurescript ×1

edn ×1