3
爲什麼這編譯:混淆錯誤使用F#有源圖案
let (|T|F|) b =
let f (o:int) : obj = null
if b then T else F(f)
而失敗:
let (|T|F|) b =
let f (o:obj) : obj = null
if b then T else F(f)
的兩個例子之間的差異是參數「O」被強制轉換到任何一個' int'(compiles)或'obj'(編譯失敗)
我不禁想知道你的目標是什麼。 – ChaosPandion 2010-10-01 22:00:58
是的,我知道它的奇怪的代碼。我正在編寫一些F#類型的反射代碼,活動模式返回一個在'obj'上運行的函數。我貼的代碼顯然是無用的:) – 2010-10-02 11:49:19