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