F#抑制警告

Min*_*ang 7 f#

有时我在编译F#时会遇到烦人的模式匹配和缩进警告.有没有办法禁用警告?我警惕了OCD.

Bri*_*ian 8

如果您忘记了,可以输入

let rec x = lazy(x.Value)
Run Code Online (Sandbox Code Playgroud)

并得到警告

通过使用延迟引用,将在运行时检查对定义的对象的这个和其他递归引用的初始化 - 健全性.这是因为您定义了一个或多个递归对象,而不是递归函数.使用'#nowarn"40"'或'--nowarn:40'可以抑制此警告.

这表明您可以--nowarn在命令行上使用编译器标志,或#nowarn在代码中使用hash-directive .每个警告的警告编号将是构建输出的一部分(Visual Studio错误列表不显示数字,因此如果在VS中,构建然后检查构建输出).此外,如果在VS内部,您可以转到项目属性页面,"构建"选项卡,并使用"警告级别"选择器和"禁止警告"字段(以分号分隔的数字列表)来控制通过显示的方式显示哪些警告VS UI.

(顺便说一句,我相信#nowarn只关闭当前文件中的警告,而--nowarn对于正在编译的整个项目则关闭它.)