开发者

How to invoke methods from constructor in F#

开发者 https://www.devze.com 2022-12-09 16:36 出处:网络
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'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

精彩评论

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