任何人都可以给我一个很好的示例答案来区分使用,需求和导入。
我希望有人可以帮助我。
答案 0 :(得分:7)
require
确保编译和实例化Clojure命名空间。
:reload
密钥:as
密钥,则可以选择创建别名。:refer
密钥,则可以选择修改当前名称空间以包含到所需名称空间的变量的映射。映射仅在需要的命名空间内可见,并且不会传递给需要它的其他命名空间。 use
与require in action相同,但默认情况下是通过refer
函数修改当前命名空间以包含所有目标命名空间的变量,就像提供了:refer :all
一样。它接受:exclude
,:only
和:rename
键来指导修改当前命名空间。
import
用于将类名称的映射添加到当前名称空间,因此不需要使用包限定符。
答案 1 :(得分:1)
简而言之,请使用require
您几乎从不希望以use
的方式混淆同一名称空间中不同名称空间的符号,除非在临时REPL工作期间。
答案 2 :(得分:0)
require
加载并编译Clojure名称空间。 import
可让您避免
使用完全限定的Java类名(与Java中的import
相同)。