2

阅读 re-frame 的源代码,我偶然发现了这一行

(def empty-queue #queue [])

是什么#queue?它有什么作用?

4

1 回答 1

4

#queue []是一个标记文字#queue使用queue成员*data-readers*来转换或解释[]

这个阅读器的具体定义在 ClojureScript 仓库中的src/main/clojure/cljs/tagged_literals.cljs中,参考*cljs-data-readers*下面的定义;它[]从向量转换为cljs.core.PersistentQueue

另请参阅https://cljs.github.io/api/syntax/queue-literal上的文档


Clojure 和 ClojureScript 中的持久队列结构的存在允许有效地推送到一端并从另一端弹出 - 与列表和向量相反,列表和向量仅在从同一侧推送和弹出时有效。

于 2017-04-20T18:02:54.210 回答