gen-class和gen-interface的文档字符串开始于“当编译时,...”。这不明确是什么意思。
毕竟,Clojure什么时候不编译呢?clojure.org主页说“Clojure是一种编译型语言”,而 unchecked-math、warn-on-reflection、case和defmacro的文档字符串似乎表明编译是将形式转换为字节码——这是一个连续的过程。
在clojure核心的其他地方:defrecord和deftype的文档字符串提到了“AOT编译”。compile-files的文档字符串提到了“编译文件”,不清楚是指输入文件还是输出文件。compile的文档字符串提到了“类文件”。这些都可能或可能不相关。
如果gen-class、gen-interface、compile和compile-files意味着“AOT编译”,那么让我们明确这一点。如果不是这样,那么请让我们清楚地解释它们的真正含义。