F# 检查 val 成员是否未初始化
F# check if val member is uninitialized
我有一个 F# class,它使用以下内容来声明,但不初始化 class 成员:
[<DefaultValue>] val mutable myVariable : myType
如何在代码中查看这个值是否已经初始化?我试过了:
x.myVariable = null
但这似乎不起作用。
根据您的描述,很难说出您实际想要实现的目标 - 同时使用未初始化的值和继承通常不是在 F# 中做事的首选方式(但它们有时都是互操作性所必需的)使用 .NET),所以如果您遵循这个方向,您可能不会从使用 F# 中获得那么多优势。
以下方法不适合您吗?这个想法是我们定义一个基础class,它通过构造函数获取私有事物的值:
type Base(myThing : Random) =
member x.MyThing = myThing
然后继承的 class 可以提供一个值,但也可以使用成员访问它:
type MySubclass() =
inherit Base(new Random(0))
member x.Next() =
x.MyThing.Next()
我有一个 F# class,它使用以下内容来声明,但不初始化 class 成员:
[<DefaultValue>] val mutable myVariable : myType
如何在代码中查看这个值是否已经初始化?我试过了:
x.myVariable = null
但这似乎不起作用。
根据您的描述,很难说出您实际想要实现的目标 - 同时使用未初始化的值和继承通常不是在 F# 中做事的首选方式(但它们有时都是互操作性所必需的)使用 .NET),所以如果您遵循这个方向,您可能不会从使用 F# 中获得那么多优势。
以下方法不适合您吗?这个想法是我们定义一个基础class,它通过构造函数获取私有事物的值:
type Base(myThing : Random) =
member x.MyThing = myThing
然后继承的 class 可以提供一个值,但也可以使用成员访问它:
type MySubclass() =
inherit Base(new Random(0))
member x.Next() =
x.MyThing.Next()