在Clojure 1.4中有什么用途需要引用?

使用什么优点:refer :require已经结束使用:only:use ? 以下是同义词吗?

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

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

添加主要思想:refer :require是完全摆脱:use ,只留下一个运营商加载其他包。 你可以模拟现有的:use (:require [my.lib :refer :all])

是的,它们是等价的,

:refer:require是构build命名空间所需的基本操作。 :use更加方便

  • :require导致类被加载
  • :refer将名称空间添加到名称空间中,实际上只是一个地图(实际上是一对地图)
  • :use:refer + :require

它可能看起来像这样,命名空间真的没有什么魔力

如果你做这样的命名空间

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

相当于:要求将是:

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

从1.4.0版本开始,不再有使用use的好理由。 使用require:请参考。 从Clojure 1.4.0更改日志:“require现在可以带一个:引用选项。:引用从名字空间引用符号列表或:全部引入所有公共variables。 (从https://8thlight.com/blog/colin-jones/2010/12/05/clojure-libs-and-namespaces-require-use-import-and-ns.html