2014-09-22 32 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工作。

相關問題