Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
F# 是否有确保F项目中模块依赖关系顺序的最佳实践?_F# - Fatal编程技术网

F# 是否有确保F项目中模块依赖关系顺序的最佳实践?

F# 是否有确保F项目中模块依赖关系顺序的最佳实践?,f#,F#,例如: 我有一个F项目,有几个类。其中一个类导入打开2个模块作为依赖项 我注意到只有1个依赖模块成功解析,但有一个intellisense抛出了FS0039错误。命名空间或模块[module name]未定义,因此我无法访问模块的任何类型或成员 所有文件都在同一个目录中,定义它们的语义在很大程度上是相同的 我花了数小时研究,试图确定一个模块与其他模块有什么不同,并最终通过反复试验确定,导致问题的原因是在我的项目文件中定义模块的顺序 <ItemGroup> <Compile

例如: 我有一个F项目,有几个类。其中一个类导入打开2个模块作为依赖项

我注意到只有1个依赖模块成功解析,但有一个intellisense抛出了FS0039错误。命名空间或模块[module name]未定义,因此我无法访问模块的任何类型或成员

所有文件都在同一个目录中,定义它们的语义在很大程度上是相同的

我花了数小时研究,试图确定一个模块与其他模块有什么不同,并最终通过反复试验确定,导致问题的原因是在我的项目文件中定义模块的顺序

<ItemGroup>
   <Compile Include="Module2.fs" />
   <Compile Include="Module1.fs" />
   <Compile Include="Module3.fs" />
</ItemGroup>
如此给定

<ItemGroup>
   <Compile Include="Module1.fs" />
   <Compile Include="Module3.fs" />
   <Compile Include="Module2.fs" />
</ItemGroup>
如果Module3需要Module2,这将导致对Module2的引用抛出FS0039,并且该引用将无法解析。我必须在项目文件中手动重新安排订单,以解决问题

<ItemGroup>
   <Compile Include="Module2.fs" />
   <Compile Include="Module1.fs" />
   <Compile Include="Module3.fs" />
</ItemGroup>
我注意到,在本例中,哪一个模块1或模块2在排序中排在第一位没有任何区别,只要它在模块3之前列出

是否有最佳实践来缓解手动编辑F项目文件的周期性要求?或者这仅仅是F<P/P课程的标准?
我意识到这是一种基于过程的语言,但我从来不用担心手动编辑C中的项目文件。

这是许多新的F程序员遇到的障碍。简单的回答是,好的设计的一部分是确保编译单元之间的依赖关系是干净的和定义良好的,因此您自然会学会保持它们的逻辑顺序。如上所述,这通常是您可以在IDE中执行的操作,而不是直接处理项目文件


要获得更详细的答案,F代表乐趣和利润。

这是许多新的F程序员遇到的一个障碍。简单的回答是,好的设计的一部分是确保编译单元之间的依赖关系是干净的和定义良好的,因此您自然会学会保持它们的逻辑顺序。如上所述,这通常是您可以在IDE中执行的操作,而不是直接处理项目文件


要获得更详细的答案,请选择F以获得乐趣和利润。

文件顺序在F中很重要。如果您使用的是IDE ie:类似Visual Studio的东西,通常可以直接在解决方案资源管理器中对其重新排序。不需要手动编辑fsproj。文件顺序在F中很重要。如果您使用的是IDE ie:类似Visual Studio的东西,通常可以直接在解决方案资源管理器中对它们重新排序。不需要手动编辑fsproj。