我的应用程序中有一个类 - 为简单起见,我们假设它是这样定义的:
type baseType() =
member this.A = 5.
此外,我有很多函数将这种类型的对象作为参数。此外,其中一些采用这种类型的数组:
let myFun (xArr : baseType[]) =
// ... do something inspirig ;)
现在我意识到,拥有另一个派生自“baseType”的类会很好。例如:
type inhType() =
inherit baseType()
member this.B = 8.
但是,我不能将继承类型的数组与“myFun”等函数一起使用
let baseArr = [| baseType() |]
let inhArr = [| inhType() |]
myFun baseArr
myFun inhArr // won't work
这将是“很高兴”。有没有一种简单的方法可以重用我的功能而无需进行太多更改?
我想解决方案之一是使用例如函数 (fun (d : inhType) -> d :> baseType) 映射我的数组,但我想知道是否还有其他事情可以做。