2008-11-28 33 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

相关问题