這是一個簡單的問題,但由於F#太新,我無法追蹤答案。我只是想在F#控制檯應用程序暫停,所以我寫了:F#:此表達式應該有'單元'類型,但是類型爲'ConsoleKeyInfo'
Console.ReadKey()
但這給出了警告:此表達式的類型應該是「單位」,但有類型「ConsoleKeyInfo」。任何幫助將不勝感激。
感謝, - 李
這是一個簡單的問題,但由於F#太新,我無法追蹤答案。我只是想在F#控制檯應用程序暫停,所以我寫了:F#:此表達式應該有'單元'類型,但是類型爲'ConsoleKeyInfo'
Console.ReadKey()
但這給出了警告:此表達式的類型應該是「單位」,但有類型「ConsoleKeyInfo」。任何幫助將不勝感激。
感謝, - 李
解決方案:
Console.ReadKey() |> ignore
說明:Console.ReadKey()
返回類型「ConsoleKeyInfo」的對象,但你使用它作爲一個聲明不分配返回值到任何東西。所以F#警告你,你忽略了一個值。 ignore
採取任何類型,不返回任何內容。它可以這樣定義:
let ignore _ =()
替代選項:`ignore(Console.ReadKey())`或者`let _ = Console.ReadKey()` – gliderkite 2012-06-10 20:20:43
您將在OCaml中獲得幾乎相同的警告。您可以在F#中使用--no-warn標誌禁用它(儘管我不確定該特定警告的代碼是什麼)。 – 2008-12-02 23:06:31