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