我想在clojure中做出小的web框架。我在/ handlers目錄中有一堆clojure文件,我想在我的項目的.core命名空間中要求所有這些文件。每個文件都定義了自己的名稱空間。例如:project.handlers.home。這個背後的想法是當我添加新的處理程序時,我不想修改核心文件中的名稱空間聲明來包含它。我想出的唯一解決方案是查找目錄中的所有文件並使用clojure.core/load加載它們,但它遠非美麗而慣用。有沒有一種慣用的方式來做到這一點?Clojure自動需要文件
回答
有沒有一種慣用的方法來做到這一點?
IMO,no。 Clojure中的習慣用語通常贊成明確表達「做魔術」,特別是在命名全局對象時(自動加載名稱空間顯然是這樣)。
我不知道爲什麼你不想在添加新的處理程序時修改你的「核心」文件,但是你可能會考慮引入一個額外的名字空間來加載「核心」和你的處理程序並將它們連接在一起。
謝謝你的回答。 – ivs
Noir包括some functionality像這樣,使它成爲一個明確的API調用來加載特定目錄下的命名空間。有關此示例,請參閱load-views。它用它來自動加載路徑。但是,Noir方法由於所涉及的魔法數量以及該方法的其他複雜性(例如滯留路徑定義)而沒有感覺到習慣用法。
如果您需要從工具,框架或庫的角度查找命名空間,我會使用find-namespaces
in tools.namespace
然後需要/加載它們。這種方法在提供用戶級可插入性方面很有用,用戶可以將一個處理程序放到一個目錄中,然後在代碼中看到新的選項,儘管顯式的清晰度往往更爲明顯。
好點。謝謝。 – ivs
- 1. Clojure不需要cljc文件
- 2. 動態需要文件?
- 3. Clojure是否需要JDK?
- 4. clojure需要語法理由
- 5. Clojure:需要架構建議
- 6. Clojure的:需要和Instaparse
- 7. 柳葉刀是否需要clojure包裝或jar文件?
- 8. 爲什麼我不需要Clojure文件中的Java庫?
- 9. 需要爲已編譯的clojure類創建jar文件
- 10. 自動需要的課程?
- 11. 自動需要寶石
- 12. 自動URI解碼需要
- 13. 需要製作一個自動執行批處理文件
- 14. 自動需要在Rails 4中的lib文件
- 15. 需要在多個文件中自動加載
- 16. 自動加載文件,當使用需要功能
- 17. 需要從CSV文件創建自動代碼的算法
- 18. 我需要自動化這個Excel文件最好我可以
- 19. 在Ruby中'不需要'不自動包含子文件夾嗎?
- 20. 自動需要zend框架中的靜態調用文件
- 21. Cakephp:多個文件上傳字段集爲自動需要
- 22. Android活動自動啓動 - 不需要
- 23. webpack2動態樣式文件需要
- 24. 需要文件Lua
- 25. Timbre(Clojure),完成需要1分鐘
- 26. 需要幫助優化clojure語句
- 27. 爲什麼Clojure需要attr-map?
- 28. clojure slurp需要絕對路徑
- 29. 在clojure中,我如何需要multimethod?
- 30. 如何在clojure/leiningen中需要java類
嘗試過了嗎? –
無非是遍歷目錄和做(clojure.core /加載「文件」)。 – ivs
你應該真的在這個問題上表現出一些努力,你確實嘗試了一些東西,以及你在哪裏被困住。通常你會顯示一些代碼。 * downvote *箭頭說:「這個問題沒有顯示任何研究工作;它不清楚或沒有用」。如果你這樣做,我相信你會得到答案。 –