我正在研究一些 Clojure 代码,这些代码在不同的命名空间之间具有一些循环依赖关系,并且我正在尝试找出解决它们的最佳方法。
- 基本问题是我在其中一个文件中收到“No such var: namespace/functionname”错误
- 我试图“声明”该函数,但随后它抱怨:“无法引用不存在的合格变量”
- 我当然可以重构整个代码库,但是每次你有一个需要解决的依赖项时都这样做似乎不切实际......并且对于某些循环依赖项网络可能会变得非常丑陋
- 我可以将一堆接口/协议/声明分离到一个单独的文件中,并让所有内容都引用它......但这似乎最终会变得混乱并破坏我拥有的当前良好的模块化结构以及相关的功能分组一起
有什么想法吗?在 Clojure 中处理这种循环依赖的最佳方法是什么?