鉴于以下情况:
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/