3
要編譯整套的類,我們編寫「Library/*」(Java)。什麼是clojure等同於此?
使用REPL編譯。java等效的星號(*)在clojure中?
要編譯整套的類,我們編寫「Library/*」(Java)。什麼是clojure等同於此?
使用REPL編譯。java等效的星號(*)在clojure中?
一般來說,你擁有的加載文件/庫3種方式進入REPL:
使用是最強大的(也是最危險)。
要求告訴REPL您將要使用來自該命名空間的項目。例如:
(require 'clojure.string)
允許你這樣做:
(clojure.string/split "hi, reader" #",")
使用不一樣的要求,但使用還包括了NS的所有瓦爾到當前的命名空間。
導入用於與Java庫,像這樣:
(import 'java.util.Date)
所以可以
(Date.)
要求(並因此使用)使用許多其他功能 「發動機罩下」:
(require '[clojure.test :as test] :verbose)
(clojure.core/load "/clojure/template")
(clojure.core/load "/clojure/walk")
(clojure.core/in-ns 'clojure.template)
(clojure.core/alias 'walk 'clojure.walk)
(clojure.core/in-ns 'clojure.test)
(clojure.core/alias 'temp 'clojure.template)
(clojure.core/load "/clojure/test")
因此,您也可以通過手動執行這些步驟來模擬require。
另一個有趣的功能是加載文件
(load-file "src/mylib/core.clj")
和負載
(load "address_book/core")
這些負載的Clojure代碼在類路徑的資源。如果路徑以斜槓開頭,或者相對於當前名稱空間的根目錄 目錄,則路徑將解釋爲 classpath-relative。
如果你想加載任何更復雜的文件,然後說2或3個文件,我認真推薦使用Leiningen。
編輯:您可能還需要使用:
(add-classpath "file:///home/../.../src/")
要輕鬆的文件添加到類路徑,這樣你就可以與需要使用它們。
只用編譯器/ REPL「編譯」?或者使用leiningen或maven?可以指定更多的細節嗎? – Sander
@Sander我更新了這個問題。日Thnx! – vikbehal
我不太確定這個問題在問什麼。你的意思是寫什麼等同於「javac Library/*。java」?或者如何導入類(正如Sander在下面解釋的那樣)? –