3

示例代码:

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

我不是 Clojure 专家,这让我很#'困惑——那是什么?

4

1 回答 1

4

这是一个名为 var-quote 的阅读器宏#'x是一样的(var x)

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

于 2013-07-22T16:13:25.580 回答