开发者

How to invoke methods from constructor in F#

I'm aware of this question, but the asker seems to have been content with an answer to another question (how to overload the constructor)

I have a class which kind of acts as an advanced memoizer around a mutable class, so that I can treat it as immutable from outside:

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 loo开发者_运维问答kupTable here

I can't work out how to invoke the Init method on "tool". What am I missing?


IIRC, the do keyword might work here:

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

I'm not sure what you meant with the last line of code, so I left it as you wrote it...


You need "do":

type Foo(args) = 
  let x = new Whatever()
  do x.Bar()

  member ....
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜