gpt4 book ai didi

f# - F#中重载方法的问题

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

为什么这样的代码不能编译?

type MyType() =
static member myMember (f,(g,h)) = g
static member myMember (a,(b,c,d)) = MyType.myMember(a,(b,c))
static member myMember (a,(b,c,d,e)) = MyType.myMember(a,(b,c))

它说:...元组的长度不同,分别为 2 和 4

这是一个错误?

最佳答案

我不确定这是否是一个错误,但一般来说,在存在多个重载的情况下进行类型推断很难做好。最好的办法是添加一些类型注释:

type MyType() =
static member myMember<'a,'b,'c> (f:'a,(g:'b,h:'c)) = g
static member myMember (a,(b,c,d)) = MyType.myMember<_,_,_>(a,(b,c))
static member myMember (a,(b,c,d,e)) = MyType.myMember<_,_,_>(a,(b,c))

关于f# - F#中重载方法的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5352114/

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