我刚开始接触Clojure,对core.clj有一个非常基础的问题。
关于它有什么约定?应该放置什么代码?公共API?
这个文件是由leiningen在创建项目时生成的。我看了一些库的源代码,发现这个文件也在那里出现了(每个包中都有吗?)。
谢谢
我刚开始接触Clojure,对core.clj有一个非常基础的问题。
关于它有什么约定?应该放置什么代码?公共API?
这个文件是由leiningen在创建项目时生成的。我看了一些库的源代码,发现这个文件也在那里出现了(每个包中都有吗?)。
谢谢
这个词汇本身没有明确定义,但在应用程序中通常指入口点,也就是main-
函数。对于库来说,foo.core
通常是用户导入以获得主要功能的命名空间。
你不一定非得按照这种方式去做,但这是一个比较可预测的位置,可以将你所写的任何内容的“核心部分”放在这里,即使你的实际逻辑和算法代码在其他地方。
lein new foo
,则命名空间foo.core
并没有具体或标准含义。对于命名空间foo
来说,它完全可以作为项目的主API容器。这只是一个免费供您开始工作的文件。foo
的项目,预期但并非强制要求该项目的所有代码存在于foo.*
命名空间中。Leiningen将允许您构建一个包含文件src/foo.clj
和src/bar.clj
的项目,并且foo
需要bar
是完全合理的,但在打包代码以进行分发时,这可能不是一个好主意。