function - (def empty-queue #queue []) 中的 "#queue"是什么意思?

标签 function clojure clojurescript re-frame

阅读re-frame的源代码,我偶然发现了this line :

(def empty-queue #queue [])

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

最佳答案

#queue []tagged literal : #queue 使用 *data-readers*queue 成员来转换或解释 []

这个阅读器的具体定义在src/main/clojure/cljs/tagged_literals.cljs在 ClojureScript 存储库中,引用自 *cljs-data-readers* definition below ;它将 [] 从向量转换为 cljs.core.PersistentQueue .

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


Clojure 和 ClojureScript 中的持久队列结构的存在是为了允许高效地插入一端并从另一端弹出 - 与列表和向量相反,列表和向量仅在从同一端插入和弹出时才有效。

关于function - (def empty-queue #queue []) 中的 "#queue"是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43526673/

相关文章:

Javascript 函数检查日期

python - 检查命令是否有检查 "guild_only"

javascript - 在javascript匿名方法中访问复制的整数变量

c++ - 将数学函数作为方法的输入参数传递给C++

clojure - 在 Clojure 中查找与谓词匹配的元素的索引?

clojurescript - 在 clojurescript/试剂/reagi 中跟踪鼠标?

clojure - 解构:这怎么行得通?

clojure - 访问 Clojure 的线程优先宏参数

ClojureScript map 查找缓慢

clojure - GC 是否在 Clojure 中删除 ns 后删除所有对象?