首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >cljc文件的基本功能

cljc文件的基本功能
EN

Stack Overflow用户
提问于 2016-07-31 02:01:31
回答 2查看 3K关注 0票数 16

通常,Clojure源文件被命名为(例如) foo.clj,而Clojurescript源文件被命名为foo.cljs。我的印象是,在Clojure版本Clojure1.7中,如果我希望文件可以从>=和Clojurescript1.7中加载到requireuse中,我可以将其命名为foo.cljc。

这是正确的吗?这似乎隐含在关于Using cljcreader conditions的主要文档页面中,但据我所知,它从未明确说明过。

这不是关于使用读取器条件来指定在Clojure和Clojurescript中运行的替代代码的问题;它更基本。例如,我有一个源文件,其中包含完全通用的代码:它可以不加更改地在Clojure和Clojurescript中运行。我是否可以假设,通过使用".cljc“命名,require总是可以从Clojure和Clojurescript内部找到它(假设它的命名正确,位置正确,等等)?

我非常确定我是正确的,但我不确定,我认为如果我是正确的,那么将答案记录在这里是值得的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-07-31 07:26:49

是这样的。当Clojure或ClojureScript需要加载名称空间时,它们首先查找特定于平台的文件(在Clojure上查找.class,然后在Clojure上查找.clj,在ClojureScript上查找.cljs ),如果没有找到,则查找.cljc文件。

您仍然需要确保它对于类路径上的语言是可用的,就像其他源文件一样。

票数 19
EN

Stack Overflow用户

发布于 2016-07-31 07:27:53

是。

细微差别是加载的优先级,如下所述:

https://github.com/clojure/clojure-site/commit/010134bcc2e8af899ba2b1e5816b0fcf7e007ba4

简而言之,cljc文件最后加载,条件条件只在cljc中有效。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38676944

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档