我刚刚开始学习clojure,对core.clj有一个非常基本的问题。
关于它的约定是什么?什么代码应该去那里?公共 API?
它是由莱宁根在创建项目时生成的。我已经查看了一些库的源代码,这个文件也在那里(每个包?
谢谢
它没有定义的含义,但在应用程序中,它通常是你找到入口点的地方,main-
函数。对于库,foo.core
通常是用户为获取主要功能而导入的命名空间。
不必那样做,但它是一个半可预测的地方,拥有你正在编写的任何内容的"中心位"——即使你的实际逻辑和算法代码在其他地方。
Leiningen 生成 foo.core,因为它需要选择一个名称,并且 core 足够通用,可能不会出错。这是一个风格决定,但我通常选择将 core.clj 重命名为对我的项目真正有意义的名称。
它只是Leiningen发出的模板文件。如果我运行lein new foo
命名空间foo.core
没有特定或标准的含义。命名空间foo
是项目的主要 API 容器是完全合法的。这只是一个免费文件供您开始工作。
也就是说,如果您有一个项目foo
,则预计该项目的所有代码都存在于foo.*
命名空间中,尽管未强制执行。Leiningen 将允许您使用src/foo.clj
和src/bar.clj
的文件构建一个项目,foo
要求bar
是完全合理的,但是在打包代码进行分发时,这可能是一个坏主意。