如何使用另一个模块

问题描述 投票:17回答:2

我有两个F#模块,比如A.fs中的A和B.f中的B模块。但是,当我使用模块B中的模块A时,F#看不到它。我已经尝试了open指令的所有组合,即open Aopen MyNamespace.A等等 - 没有任何帮助。我究竟做错了什么?

f# module
2个回答
35
投票

我猜。文件在项目资源管理器中显示的顺序非常重要。当你想使用模块B中的模块A时,A.fs必须出现在B.fs.之前。


5
投票

由于F#不允许递归模块(IIRC),您唯一需要关心的是模块的顺序是正确的(您不能“转发声明”它们),以便您构建添加模块,只需要以前的一步一步。

如果您发现在一组模块之间存在循环引用的情况,则必须将公共部分分解出来并删除循环。

这个问题可以澄清这个话题:F# mutual recursion between modules

© www.soinside.com 2019 - 2024. All rights reserved.