tutorial online framework example clojure

online - En Clojure 1.4, ¿cuál es el uso de referirse a require?



clojure web framework (3)

¿Qué ventaja tiene usar :refer a :require tener más que usar :only en :use ? ¿Son los siguientes sinónimos?

(ns so.example (:use [my.lib :only [function]]))

y

(ns so.example (:require [my.lib :refer [function]]))



La idea principal de agregar :refer :require es deshacerse completamente de :use , dejando solo un operador para cargar otros paquetes. Puede emular existente :use con (:require [my.lib :refer :all]) ...


sí, son equivalentes,

:refer y :require son las operaciones básicas requeridas para construir espacios de nombres. :use es más conveniente

  • :require causa que las clases se carguen
  • :refer agrega cosas al espacio de nombre que en realidad es solo un mapa (en realidad, un par de mapas)
  • :use es :refer + :require

tanto como parece, realmente no hay magia en los espacios de nombres

si haces un espacio de nombres como este

(ns so.example (:use my.lib))

el equivalente con: require sería:

(ns so.example (:require [my.lib :refer [function1 function2 function3 list every function in example here and remember to keep it up to date ]]))