【问题标题】:How to invoke methods from constructor in F#如何从 F# 中的构造函数调用方法
【发布时间】:2009-10-26 12:39:27
【问题描述】:

我知道this question,但提问者似乎已经满足于另一个问题的答案(如何重载构造函数)

我有一个类充当可变类周围的高级记忆器,因此我可以从外部将其视为不可变:

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

我不知道如何在“工具”上调用 Init 方法。我错过了什么?

【问题讨论】:

    标签: f# constructor


    【解决方案1】:

    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
    

    我不确定你对最后一行代码的意思,所以我在你写的时候留下了它......

    【讨论】:

      【解决方案2】:

      你需要“做”:

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

      【讨论】:

        猜你喜欢
        • 2015-10-01
        • 1970-01-01
        • 2013-08-10
        • 2015-05-17
        • 2013-05-08
        • 1970-01-01
        • 2011-10-22
        • 2019-01-31
        • 2016-05-31
        相关资源
        最近更新 更多