`require`,`import`和`use`有什么区别?

z_a*_*xis 24 clojure

为什么我们需要所有的require,importuse

mik*_*era 42

要求

require需要加载Clojure库,以便您可以在当前文件或REPL中使用它.

这是访问Clojure库中的函数和定义的常用方法.

使用

use以与require相同的方式引入Clojure名称空间,但另外它引用当前名称空间中加载的名称空间中的定义(即它在当前名称空间中创建一个方便的别名).

不要过度使用它(双关语) - 它很容易导致名称空间冲突!

进口

import仅用于导入Java类和接口.

user=> (import java.util.Date)
java.util.Date

user=> (def *now* (Date.))
#'user/*now*
Run Code Online (Sandbox Code Playgroud)

如果您不需要与Java代码进行互操作,那么您可以放心地忽略导入.

  • 此问题被错误地标记为重复.所提到的答案并不解释"导入".这应该是公认的答案. (3认同)