2
为什么这样的代码不能编译?F#中重载方法的问题#
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
这是一个错误?
它确实看起来像一个bug。你的最后一个成员试图调用第二个成员,尽管它应该调用第一个成员。我是否也错过了一些观点? – fjdumont 2011-03-18 13:09:20
我认为这很重要,但我很好奇你为什么想要这样做。 – Daniel 2011-03-18 14:23:43
我不知道。这是我第二次发现这个“错误”,同时编码相互调用的重载函数。我发布的代码只是一个简单的例子,仅仅反映了“bug”。在真实世界的情况下,它有时候会发生一个函数,它用一个参数来做某事,但如果你提供了2,那么它会和第一个参数一样,而另一些则可能与第二个参数更具体,等等。 – Peter 2011-03-18 14:44:49