2008-11-28 32 views
35

這是一個簡單的問題,但由於F#太新,我無法追蹤答案。我只是想在F#控制檯應用程序暫停,所以我寫了:F#:此表達式應該有'單元'類型,但是類型爲'ConsoleKeyInfo'

Console.ReadKey()

但這給出了警告:此表達式的類型應該是「單位」,但有類型「ConsoleKeyInfo」。任何幫助將不勝感激。

感謝, - 李

+0

您將在OCaml中獲得幾乎相同的警告。您可以在F#中使用--no-warn標誌禁用它(儘管我不確定該特定警告的代碼是什麼)。 – 2008-12-02 23:06:31

回答

62

解決方案:

Console.ReadKey() |> ignore 

說明:Console.ReadKey()返回類型「ConsoleKeyInfo」的對象,但你使用它作爲一個聲明不分配返回值到任何東西。所以F#警告你,你忽略了一個值。 ignore採取任何類型,不返回任何內容。它可以這樣定義:

let ignore _ =() 
+10

替代選項:`ignore(Console.ReadKey())`或者`let _ = Console.ReadKey()` – gliderkite 2012-06-10 20:20:43

相關問題