使用,要求和导入之间的区别

时间:2014-09-22 04:18:01

标签: clojure

任何人都可以给我一个很好的示例答案来区分使用,需求和导入。

我希望有人可以帮助我。

3 个答案:

答案 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相同)。