2024 年 Clojure 调查问卷中分享您的观点!

欢迎!请参阅关于页面以获取更多关于如何工作的信息。

0 投票
ClojureScript

在 clojurescript 中,我有一个从标签字面量返回记录的数据读取器

(ns x.x)

(defrecord X [y])

(defn make-x [y] (->X y))

data_readers.cljc

{x x.x/make-x}

这在 go 块内部工作不正确

(println "outside of go:" #x"a")
(go
  (println "inside of go:" (<! (go #x"b"))))

结果如下

outside of go: #x.x.X{:y a}
inside of go: {:y b}

@hiredman 在 clojurians slack 上指出了这个问题

发生的事情是这样的
https://github.com/clojure/core.async/blob/master/src/main/clojure/cljs/core/async/impl/ioc_macros.clj#L403

map? 返回 true 因此它将您的记录编译为一个映射

1 回答

+1 投票
...