Clojure #' 是什么意思
Clojure what does #' mean
我正在学习本教程building a Clojure backend
而且我不太精通 Clojure。
教程提供此源文件
(ns shouter.web
(:require [compojure.core :refer [defroutes GET]]
[ring.adapter.jetty :as ring]))
(defroutes routes
(GET "/" [] "<h2>Hello World</h2>"))
(defn -main []
(ring/run-jetty #'routes {:port 8080 :join? false}))
#'
到底是什么意思?我知道它以某种方式获得了 routes
的值,但为什么你不能直接说
(ring/run-jetty routes {:port 8080 :join? false}))
#'
是特定于环的语法吗?在此事上找不到任何好的资源。
#'sym
扩展为 (var sym)
。
var 可以作为绑定到它的函数互换使用。但是,调用 var 会动态解析定义的函数,然后调用它。
在这种情况下,它服务于开发目的:不是按值传递处理程序函数 routes
,而是传递它绑定到的 var,这样 Jetty 就不必在您更改和重新启动后重新启动评估 shouter.web/routes
.
我正在学习本教程building a Clojure backend 而且我不太精通 Clojure。
教程提供此源文件
(ns shouter.web
(:require [compojure.core :refer [defroutes GET]]
[ring.adapter.jetty :as ring]))
(defroutes routes
(GET "/" [] "<h2>Hello World</h2>"))
(defn -main []
(ring/run-jetty #'routes {:port 8080 :join? false}))
#'
到底是什么意思?我知道它以某种方式获得了 routes
的值,但为什么你不能直接说
(ring/run-jetty routes {:port 8080 :join? false}))
#'
是特定于环的语法吗?在此事上找不到任何好的资源。
#'sym
扩展为 (var sym)
。
var 可以作为绑定到它的函数互换使用。但是,调用 var 会动态解析定义的函数,然后调用它。
在这种情况下,它服务于开发目的:不是按值传递处理程序函数 routes
,而是传递它绑定到的 var,这样 Jetty 就不必在您更改和重新启动后重新启动评估 shouter.web/routes
.