5
以下代碼中的最後兩行出現編譯器錯誤?F#元組,System.Tuple和集合 - 類型約束不匹配?
open System
let s = new System.Collections.Generic.Stack<Tuple<int, int>>()
s.Push(1, 2) // The type ''a * 'b' is not compatible with the type 'Tuple<int,int>'
s.Push(Tuple.Create(1, 2))
s.Push(Tuple.Create(1, 2))
的
Type constraint mismatch. The type ''a * 'b' is not compatible with type 'Tuple' The type ''a * 'b' is not compatible with the type 'Tuple' type Tuple = static member Create : item1:'T1 -> Tuple + 7 overloads Full name: System.Tuple
最奇怪的事是什麼'讓T = Tuple.Create(1,2)'得到的'類型int * int'代替't'而不是'Tuple'。 –
ca9163d9
這確實是奇特的。我已經報告它是一個問題:https://github.com/Microsoft/visualfsharp/issues/3016 –
唐關閉了問題。不過,我認爲F#編譯器至少應該給出一些解釋 - 所以人們不會感到困惑。 – ca9163d9