module - 顶级模块和本地模块有什么区别吗?

标签 module f#

我是 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/

相关文章:

node.js - 如何在 node.js 中删除 "require"之后的模块?

xml - Magento 模块布局 xml 加载顺序

f# - F# 中的文件系统实现

f# - 如何重构以避免 F# Lint 的警告?

f# - f# 如何决定在启动时运行哪个文件?

f# - when 守卫是识别元组中的项目是否在模式匹配中具有相同值的唯一方法吗?

python - 字符串模块错误,python os x

Cordova - 失败 : q is not supported

typescript - 如何从 1 个包中添加多个模块

F# 在同一项目的另一个文件中定义/使用类型/模块