F#是否允许在不同的文件中定义类?

时间:2014-06-25 20:13:08

标签: f#

我已经尝试将我的类型定义移动到另一个.fs文件,我在两个文件中都声明了相同的命名空间,但是我使用该类型的代码将无法识别该类型。 F#是否允许这样做?

1 个答案:

答案 0 :(得分:3)

如评论所述,是的,这肯定是受支持的,但是有一个要求(不像,例如C#),定义你的类型的源文件必须在消耗它的源文件的“上方”或“之前”。

所以,如果您有2个文件:

File1.fs

namespace Type.Test    
type Person = { Name : string; Age : int }

File2.fs

namespace Type.Test
module ConsumeType = 
    let richDude : Person = { Name = "Bill"; Age = 58 }

然后在命令行上调用编译器时,需要首先传递File1.fs,然后再传递给File2.fs:

c:\> fsc.exe -a File1.fs File2.fs

如果您在Visual Studio(或其他一些IDE)中进行编译,则需要将File1.fs“置于”File2.fs:

之上

file order

正如@Lee在评论中所提到的,您可以通过点击它们并使用Alt-Up / Alt-Down重新排序VS中的文件。