gpt4 book ai didi

函数返回类型中的 F# 多态性

转载 作者:行者123 更新时间:2023-12-02 09:31:32 25 4
gpt4 key购买 nike

这是一个简单的类型层次结构。

type Parent() = class end
type Child() = inherit Parent()

我想将 ('x -> Child) 类型的函数视为 ('x -> Parent):

let f (x: 'x): Child = new Child()
let g: ('x -> Parent) = f // error

但是最后一个赋值失败了,消息是The type 'Parent' does not match the type 'Child'。有什么办法可以做到这一点吗?

最佳答案

您可以使用 upcast operator (:>)让它工作:

type Parent () = class end
type Child () = inherit Parent ()

let f x = Child () // val f : x:'a -> Child
let g x = f x :> Parent // val g : x:'a -> Parent

关于函数返回类型中的 F# 多态性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32663072/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com