2010-01-02 29 views
18

或者我必須專門列舉每個我導入的課程?Clojure有相當於Java的導入包嗎?

我剛學的Clojure,現在,它似乎是能夠做這樣的事在REPL有用:

(import '(java.io *)) 

不,這是有效的語法,但它會是不錯的東西這相當於。這可以節省一些打字工作,特別是在修補時。在實際的生產代碼中,我總是枚舉每個我正在導入的類,而不管語言如何,但不必這樣做。

回答

19
+3

無賴。我很欣賞他的想法,爲什麼這不是一個好主意,但我不希望這種語言限制我,特別是在REPL中玩耍時。 – Jeff 2010-01-03 01:26:46

+2

注意這是對在運行時無法有效執行的原因的解釋。在編譯時它可以工作(顯然,因爲這就是爲什麼你可以在Java中完成它.....) – mikera 2010-12-07 14:08:53

1

除非我錯過了一個更新,否則目前無法在Clojure中將通配符卡包包裝到名稱空間中。

1

目前似乎沒有辦法做到這一點。導入宏僅用於將指定的類導入當前名稱空間。我試着編寫另一個宏來做你想做的事情,但是它似乎不可能使用Clojure使用的類加載器,因爲它不允許我們訪問包資源。