我是 F# 的新手,但对 C# 非常熟悉。我想知道声明顶级模块和本地模块(例如性能等)之间是否有区别,除了顶级模块不需要命名空间声明(它是模块声明的一部分)。
我在文档( MSDN F# Modules )中找不到任何指定其他差异的内容。
基本上,来自我更喜欢的 C# 世界
//Version 1
namespace My.Namespace
module MyModule =
let a = 1
超过
//Version 2
module My.Namespace.MyModule
let a = 1
鉴于在两个版本中文件中只有一个模块,版本 2 是否带来任何缺点(与版本 1 相比)?
最佳答案
这些是等价的。根据 F# 3.0 specs :
An implementation file that begins with a module declaration defines a single namespace declaration group with one module. For example:
module MyCompany.MyLibrary.MyModule let x = 1
is equivalent to:
namespace MyCompany.MyLibrary module MyModule = let x = 1
关于module - 顶级模块和本地模块有什么区别吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20126722/