F# 抑制警告

问题描述 投票:0回答:3

有时,我在编译 F# 时会遇到烦人的模式匹配和缩进警告。有没有办法禁用警告?我对警告非常强迫症。

f#
3个回答
13
投票

万一忘记了,可以输入

let rec x = lazy(x.Value)

并收到警告

这个和其他递归引用 被定义的对象将是 检查初始化健全性 在运行时通过使用 延迟参考。这是因为你 定义一个或多个递归 对象,而不是递归 功能。该警告可能是 通过使用 '#nowarn "40"' 或 '--现在警告:40'。

这表明您可以在命令行上使用编译器标志

--nowarn
,或者在代码中使用哈希指令
#nowarn
。 每个警告的警告编号将成为构建输出的一部分(Visual Studio 错误列表不显示数字,因此如果在 VS 中,则构建然后检查构建输出)。 另外,如果在 VS 中,您可以转到项目属性页面的“构建”选项卡,并使用“警告级别”选择器和“抑制警告”字段(分号分隔的数字列表)来控制通过以下方式显示哪些警告VS 用户界面。

(顺便说一句,我相信

#nowarn
仅关闭当前文件中的警告,而
--nowarn
则为正在编译的整个项目关闭警告。)


4
投票

请参阅:编译器选项 (F#)

--nowarn:<int-list>

禁用列出的特定警告 数字。分隔每个警告编号 以逗号表示。您可以发现 任何警告的警告编号 编译输出。

这个编译器选项相当于 相同的 C# 编译器选项 姓名。有关更多信息,请参阅 /nowarn(C# 编译器选项)。


0
投票

除了编译器命令行和项目文件之外,还可以基于文件抑制警告(没有选项可以仅关闭部分文件)使用

#nowarn n

其中

n
是警告号码(不带“FS”前缀。可以列出多个号码:

#nowarn 3261 0010

请参阅预处理器指令

© www.soinside.com 2019 - 2024. All rights reserved.