【问题标题】:Compile-time constraint for complete pattern match完全模式匹配的编译时约束
【发布时间】:2015-05-29 20:20:32
【问题描述】:

我正在寻找不完整模式匹配的警告编号。有人知道这是什么吗?

更全面地说,我想让 FSC.EXE 作为编译时错误而不是警告 + 运行时异常返回不完整的模式匹配。有谁知道这个警告号码是什么?具体来说,这与编译的 .fs / 交互式 FSI .fsx REPL 交互有关。

警告:

Incomplete pattern matches on this expression. For example, the value 'LaLaLa (_)' may indicate a case not covered by the pattern(s).   

如何定制:

参见“--warnaserror[+|-] []”

参考:https://msdn.microsoft.com/en-us/library/dd233171(v=vs.140).aspx

【问题讨论】:

    标签: f# pattern-matching compiler-warnings


    【解决方案1】:

    使用--warnaserror+:25

    要知道是哪一个,我只是使用let f (Some x) = x 向我自己发出警告,这给了我警告 FS0025:此表达式的模式匹配不完整。前面 例如,值 'None' 可能表示模式未涵盖的情况。

    【讨论】:

    • 泰。通过 .fsx/FSI 工作时,这会被隐藏。注意:对于阅读本文的其他人,请将其放在构建选项的“其他标志”区域中。
    【解决方案2】:

    在 .Net Standard F# 项目中,您还可以通过向 fsproj 文件添加元素来实现此目的,如下所示:

    <PropertyGroup>
    <TargetFramework>netstandard2.1</TargetFramework>
    <WarningsAsErrors>FS0025</WarningsAsErrors>
    </PropertyGroup>
    

    【讨论】:

      猜你喜欢
      • 2013-06-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-11
      • 2019-03-04
      • 2023-04-09
      • 2021-11-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多