core.clj文件的目的是什么?

Vas*_*man 12 clojure

我刚开始使用clojure并且有一个关于core.clj的基本问题.

关于它的约定是什么?应该去哪些代码?公共API?

它是由leiningen在创建项目时生成的.我查看了一些库的源代码,这个文件也出现在那里(每个包?).

谢谢

noi*_*ith 7

Leiningen产生了foo.core,因为它需要选择一个名称,而核心足够通用,它可能不会错.这是一个样式决定,但我通常选择将core.clj重命名为对我的项目实际有意义的名称.


Mat*_*ton 6

它没有明确的含义,但在应用程序中,它通常是您可以找到入口点的main-函数.对于库,foo.core通常是用户将导入的命名空间以获取您的主要功能.

你不具备做这样的说法,但它是有"中央位"不管它是你正在写一个半预测的地方-即使你的实际的逻辑和算法的代码是在其他地方.


arr*_*dem 5

它只是Leiningen发出的模板文件.如果我运行lein new foo,则命名空间没有特定或标准含义foo.core.命名空间foo是项目的主要API容器是完全合法的.它只是一个免费的文件供您开始工作.

也就是说,如果你有一个项目foo,虽然没有强制执行,但是这个项目的所有代码都存在于foo.*名称空间中.Leiningen将允许您使用文件构建项目,src/foo.clj并且src/bar.clj完全有理由foo要求bar,但是在打包代码进行分发时,这可能是一个坏主意.