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

时间:2011-08-22 05:11:58

标签: clojure

为什么我们需要所有requireimportuse

1 个答案:

答案 0 :(得分:39)

<强>需要

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

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

使用

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

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

导入

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

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

user=> (def *now* (Date.))
#'user/*now*

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