你可以输入这个命令来看看真相:展开代码语言:BashAI代码解释rg--type-list你会看到类似这样的输出(这就是它的“定义字典”):展开代码语言:TXTAI代码解释clojure:*.clj,*.cljc
.c .h .xs --[no]cfmx .cfc .cfm .cfml --[no]clojure .clj .cljs .edn .cljc
.c .h .xs --[no]cfmx .cfc .cfm .cfml --[no]clojure .clj .cljs .edn .cljc
.c .h .xs --[no]cfmx .cfc .cfm .cfml --[no]clojure .clj .cljs .edn .cljc
hello-world.core) 文件与命名空间的关系是一一对应的,上述命名空间对应文件路径为hello_word/core.cljs、hello_word/core.clj或hello_word/core.cljc .cljs文件用于存放ClojureScript代码 .clj文件用于存放Clojure代码或供JVM编译器编译的ClojureScript的Macro代码 .cljc文件用于存放供CljureScript
Clojure,一般需要单独把宏定义在一个文件里面,然后在 cljs 里面用(:require-macros [my.macros :as my]) 这样的方式去引用,而且宏定义的文件名后缀必须是 clj 或 cljc