2014-09-22 33 views
5

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

我希望有人能帮助我。

+2

另一个重复http://stackoverflow.com/questions/871997/difference-between-use-and-require?rq=1和http://stackoverflow.com/questions/3408076/difference-in-clojure-between次使用和 - 需要?RQ = 1 – edbond 2014-09-22 08:02:12

回答

7

require确保Clojure命名空间已被编译和实例化。

  • 任选地从源如果所提供的密钥:reload
  • 任选创建别名如果提供:as密钥更新它。
  • 如果提供了:refer密钥,则可选地修改当前名称空间以包含映射到所需名称空间的变量。映射仅在需要的名称空间内可见,并且不能传递给需要它的其他名称空间。

use是相同的要求采取行动,只是默认是通过refer功能修改当前的命名空间包含所有目标命名空间的瓦尔仿佛:refer :all已提供。它接受:exclude,:only:rename键来指导修改当前命名空间。

import用于添加类名称到当前名称空间的映射,以便不需要使用包限定符。

0

require加载和编译Clojure名称空间。 import允许您使用完全限定的Java类名称(与Java中的import相同)来避免 。

1

总之,使用require

你几乎从来没有想混淆从不同的命名空间的符号在同一个命名空间的方式确实use,除了在休闲REPL工作。

相关问题