Clojure 什么是';我在戒指应用程序中看到了什么?

Clojure 什么是';我在戒指应用程序中看到了什么?,clojure,ring,Clojure,Ring,示例代码: (def app (-> #'handler (ring.middleware.stacktrace/wrap-stacktrace) (wrap-spy))) 我不是Clojure专家,这个#“让我困惑——那是什么?这是一个问题#'x与(var x)相同 它所做的是为您提供一个名为x的变量引用,而不是x引用的值。在这种情况下,您要告诉ring,“要调用的函数在处理程序中,而不是“这里是要调用的函数”。这意味着您可以更新(在repl中重新定义)处理程序

示例代码:

(def app
  (-> #'handler
     (ring.middleware.stacktrace/wrap-stacktrace)
     (wrap-spy)))
我不是Clojure专家,这个
#“
让我困惑——那是什么?

这是一个问题
#'x
(var x)
相同


它所做的是为您提供一个名为
x
的变量引用,而不是
x
引用的值。在这种情况下,您要告诉ring,“要调用的函数在
处理程序中,而不是“这里是要调用的函数”。这意味着您可以更新(在repl中重新定义)处理程序的定义,ring会找到它,即使您不更新应用程序的其余部分。

要查找类似的内容,您也可以使用它作为引用。它与前面提到的重复项非常接近。一个区别是它特别询问了ring,这可能是很多人第一次遇到它的方式。“ring”关键字(和标记)可能会使这一点值得保留。