gpt4 book ai didi

将 "incomplete pattern match"视为错误的 F# 代码属性

转载 作者:行者123 更新时间:2023-12-02 00:43:00 24 4
gpt4 key购买 nike

我想知道 F# 中是否存在代码功能(不是编译器功能),用于使不完整的模式匹配作为错误出现,而不是警告。

我需要它能够根据具体情况进行处理。即,在代码的某些地方,我希望不完整的模式匹配是一个警告,而在同一程序集中的其他地方,我希望它是一个错误。因此,设置编译器标志以将所有 不完整模式匹配警告视为错误是不够的,如Compile-time constraint for complete pattern match建议。

这可能看起来像

type MyUnion = First | Second

let foo x =
match x with
| First -> "hello"
// raises a compile-time warning

let bar x =
[<AssertCompleteMatch>]
match x with
| First -> "hello"
// raises a compile-time error

或者该属性可能会应用于该类型,以确保与该特定类型的所有模式匹配都是完整的。

最佳答案

您可以将警告 25 视为错误,然后使用

#nowarn "0025"

在您想要明确忽略它的文件中。但是禁用警告是文件范围的,而不是匹配范围的。我认为这是您能做的最好的事情。

关于将 "incomplete pattern match"视为错误的 F# 代码属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45554146/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com