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

时间:2014-02-07 07:55:12

标签: clojure

我刚刚开始讨论 core.clj。

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

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

由于

3 个答案:

答案 0 :(得分:7)

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

答案 1 :(得分:6)

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

你没有这样做,但它是一个半可预测的地方,无论你在写什么,都要有'中心位' - 即使你的实际逻辑和算法代码在其他地方。

答案 2 :(得分:5)

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

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