示例代码:
(def app
(-> #'handler
(ring.middleware.stacktrace/wrap-stacktrace)
(wrap-spy)))
我不是Clojure专家,而#'
让我感到困惑 - 这是什么?
答案 0 :(得分:4)
这是一个reader macro called var-quote。 #'x
与(var x)
相同。
它的作用是为您提供名为x
的变量,而不是x
引用的值。在这种情况下,你要说响,“要调用的函数在handler
”而不是“这是调用的函数”。这意味着您可以更新(重新定义repl)handler
的定义,即使您没有更新应用程序的其余部分,ring也会找到它。