gpt4 book ai didi

clojure - clojure 程序中的惯用语 (defn -main ...) 是什么意思?

转载 作者:行者123 更新时间:2023-12-04 02:19:50 26 4
gpt4 key购买 nike

我熟悉来自例如的包Java 和 Lisp,但我在其他人的代码中看到的是一些明显的习语,例如调用入口点 '-main' 并在 (in-ns `foo) 中对命名空间名称使用反引号,诸如此类。我在文档或教程中的任何地方都没有看到这些内容。是否有一些资源可以解释围绕构建程序的此类约定?

编辑:

我想我一定是从这个答案中找到了反引号:Splitting a Clojure namespace over multiple files ,这是我在试图理解 (defn -main ...) 时偶然发现的。鉴于作者,我将其视为最佳实践。然而,现在我在他引用的 Clojure 源代码中四处浏览,我看到只使用了常规引用。我想这很可能是一个错字。

(相应地缩小了问题标题的范围)

最佳答案

gen-class 的默认值是使用 - 作为该类的方法名称的前缀。这就是为什么 -main 是 java -cp clojure.jar yourclass 的默认入口点

反引号用当前命名空间限定他们的参数,因此 (in-ns `foo) 与 (in-ns 'current-namespace/foo) 相同,我认为这不是特别惯用的。惯用的方法是将每个命名空间放在自己的文件中, (ns ...) 位于顶部,并根据需要使用或要求它们。

关于clojure - clojure 程序中的惯用语 (defn -main ...) 是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5305313/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com