【问题标题】:What is #' I see in Ring app? [duplicate]我在 Ring 应用中看到的 #' 是什么? [复制]
【发布时间】:2013-07-22 15:56:38
【问题描述】:

示例代码:

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

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

【问题讨论】:

  • 要查找这样的内容,您可以使用symbolhound
  • 这是一个reader macro for var-quote。
  • 它真的很接近提到的重复。不同之处在于它特别询问了戒指,这可能是很多人第一次遇到#' 的方式。 “ring”关键字(和标签)可能会让这个值得保留。

标签: clojure ring


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2013-02-03
    • 2014-10-05
    • 2011-04-30
    • 2012-09-01
    • 2014-06-05
    • 1970-01-01
    • 1970-01-01
    • 2011-11-24
    • 1970-01-01
    相关资源
    最近更新 更多