2
我有一個名爲「RecordA」的抽象類,它帶有一些我想從中分類幾個類的切片邏輯。我想要「記錄」來定義一個抽象切片方法,必須實現它來返回它自己的類型,例如。 G。在切片時鍵入「RecordB」將返回RecordB類型。如何指定一個自我返回類型
這在Fsharp中可能嗎?如果不是,爲什麼不呢?
我有一個名爲「RecordA」的抽象類,它帶有一些我想從中分類幾個類的切片邏輯。我想要「記錄」來定義一個抽象切片方法,必須實現它來返回它自己的類型,例如。 G。在切片時鍵入「RecordB」將返回RecordB類型。如何指定一個自我返回類型
這在Fsharp中可能嗎?如果不是,爲什麼不呢?
爲一個接口只有這樣,纔能有一個返回不同類型取決於具體類是使其參數的方法:
type Record<'Concrete> =
abstract member Slice : unit -> 'Concrete
type RecordB() =
interface Record<RecordB> with
member this.Slice() = new RecordB()
另見http://stackoverflow.com/questions/3045671/接口爲方法,它返回它自己的類型(所有答案在這裏適用) – Jwosty