什么是#'我在Ring应用程序中看到的?

时间:2013-07-22 15:56:38

标签: clojure ring

示例代码:

(def app
  (-> #'handler
     (ring.middleware.stacktrace/wrap-stacktrace)
     (wrap-spy)))

我不是Clojure专家,而#'让我感到困惑 - 这是什么?

1 个答案:

答案 0 :(得分:4)

这是一个reader macro called var-quote#'x(var x)相同。

它的作用是为您提供名为x变量,而不是x引用的。在这种情况下,你要说响,“要调用的函数在handler”而不是“这是调用的函数”。这意味着您可以更新(重新定义repl)handler的定义,即使您没有更新应用程序的其余部分,ring也会找到它。