F#:模块 let 和类型 static let 之间有什么区别?

标签 f# static module singleton types

鉴于以下情况:

module MyModule =
    let myObj = new MyObj()

type MyType() =
    static let myObj_ = new MyObj()
    static member myObj = myObj_

... MyModule.myObj 和 MyType.myObj 在功能上(无双关语)等效吗?

每当我调用 MyModule.myObj 或 MyType.myObj 时,我不希望代码实际创建一个新对象。我只想访问单例对象上的方法。我希望以上任何一个都适合该目的。

最佳答案

尝试一下看看?我认为它们是相同的,但我认为您可以使用构造函数来编写 MyObj 类型,该构造函数可以打印某些内容,然后使用简短的测试程序轻松验证行为。 (或者也许您在问其他我不清楚的事情。)

关于F#:模块 let 和类型 static let 之间有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3490408/

相关文章:

f# - FsUnit 和检查 float 的相等性

f# - 如何使用 Fable (F#) 进行 base64 编码?

c++ - 实现 CRTP 并发出 "undefined reference"

c - 使用 insmod 插入模块后没有输出到终端

ruby - 尝试访问包含模块中定义的方法时出现 NoMethodError

c# - F# 内联如何工作?

f# - 为什么在 F# 中将数组类型写成一个列表?

c++ - 错误消息 "undefined reference to ' 列表::a'"

android - 使用静态方法创建 AlertDialog?

javascript - 在 Ionic 3 中使用 Http 获取 JSON 数据