我正在关注本教程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}))
#'
是否是特定于铃声的语法?在这个问题上找不到任何好的资源。
答案 0 :(得分:5)
#'sym
扩展为(var sym)
。
var可以作为与其绑定的函数互换使用。但是,调用var会动态解析已定义的函数,然后调用它。
在这种情况下,它用于开发目的:不是通过值传递处理函数routes
,而是传递它绑定的var,以便在更改和重新评估后不必重新启动Jetty { {1}}。