我知道这个问题,但提问者似乎满足于另一个问题的答案(如何重载构造函数)
我有一个类作为一个可变类的高级memoizer,所以我可以把它视为外部的不可变:
type Wrapper(args) =
let tool = new MutableTool()
tool.Init(args) //<--"Unexpected identifier in definition"
let lookupTable = //create lookup using tool here
member this.Lookup(s) = //callers use lookupTable here
Run Code Online (Sandbox Code Playgroud)
我无法弄清楚如何在"工具"上调用Init方法.我错过了什么?
IIRC,do关键字可能在这里工作:
type Wrapper(args) =
let tool = new MutableTool()
do tool.Init(args)
let lookupTable = //create lookup using tool here
member this.Lookup(s) = //callers use lookupTable here
Run Code Online (Sandbox Code Playgroud)
我不确定你对最后一行代码的含义是什么,所以当你写它时我就离开了它...
你需要"做":
type Foo(args) =
let x = new Whatever()
do x.Bar()
member ....
Run Code Online (Sandbox Code Playgroud)