scala - 有没有办法在 Scala 中抑制 *only* 详尽检查?
问题描述
我发现自己经常写这样的代码:
thing match {
case Case1 ...
case Case2 ...
case _ => throw new IllegalStateException(s"unexpected $thing")
}
有时,当案例不匹配时,我想要一个运行时错误。案例是一种断言形式。
有没有更好的方法来抑制穷举检查?
我不想使用[@unchecked](https://www.scala-lang.org/api/2.12.1/scala/unchecked.html)
,因为这也会禁用可达性检查,这是我想要的。
解决方案
您可以使用nowarn
注释来隐藏警告:
import scala.annotation.nowarn
@nowarn("msg=not.*?exhaustive")
val r = thing match {
case Case1 ...
case Case2 ...
}
它是在 Scala 2.13.2中添加的,因此如果您使用的是旧版本,则需要使用消音器插件。
或者,使用消音器插件,您可以设置基于正则表达式的全局抑制。
推荐阅读
- css - 条纹元素和 Bootstrap 4.1 css 冲突
- javascript - FindOneAndUpdate 对我来说无法正常工作
- sql - SELECT 语句在 SQL Management Studio 但不是 VB.net 中执行良好
- node.js - 分析流数据的节点脚本
- f# - 分析 F# 以执行递归函数
- python - / 不支持的操作数类型:“原始”和“列表”
- javascript - 对象中的 this 只是单击按钮
- python - 构建大型列表的 Python Discord.py 程序内存不足并在 PythonAnywhere 上崩溃
- android - 如何检查android视图是否有任何TouchListeners
- r - 删除包含在另一个矩阵中的矩阵