gpt4 book ai didi

clojure - 在 Clojure 中的同一命名空间中使用函数之前,我是否需要声明函数?

转载 作者:行者123 更新时间:2023-12-02 10:37:49 24 4
gpt4 key购买 nike

我有这个代码片段:

(ns mylib-clojure.core)

(defn doWhatever2 [x]
(doWhatever1 x))

(defn doWhatever1 [x]
(inc x))

除非我将 doWhatever1 函数定义移至 doWhatever2 上方,否则此代码不起作用。我必须这样做似乎很奇怪,因为我位于同一个命名空间中。有没有一种方法可以在命名空间中声明我的函数而不必考虑顺序?

最佳答案

Clojure 编译器执行一次传递,因此顺序很重要。

Clojure 确实提供了一种指定前向声明的方法:

(declare doWhatever1)

参见clojure.core/declare

关于clojure - 在 Clojure 中的同一命名空间中使用函数之前,我是否需要声明函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28267078/

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