gpt4 book ai didi

scala - 如何抑制Scala中的 "match may not be exhaustive"警告?

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

我目前正在实现一个内部使用的小型实用程序,它将数据从一组 Excel 文件导入到我们的应用程序中。根据 Excel 单元格的类型,我决定如何处理数据。 Excel 文件只能包含字符串、数字和 bool 单元格,如果遇到任何其他单元格,程序可能会在运行时崩溃。

现在 Scala 正确地警告我,单元格类型的匹配并不详尽,单元格的类型可以是空白、公式、错误......

除了明显的警告之外,有没有办法抑制警告?:

t match {
case STRING => ???
case NUMERIC => ???
case BOOLEAN => ???
case _ => throw new MatchError() // redundant, just to suppress the compile time warning
}

最佳答案

您可以使用unchecked注释:

(t: @unchecked) match {
case STRING => ???
case NUMERIC => ???
case BOOLEAN => ???
}

正如其他人提到的,您应该避免使用它,而是相应地选择您的类型以避免此类警告(例如,通过使用密封特征)。但是,如果您发现自己无法这样做,并且您有某种不变量可以保证您的类型始终是给定类型之一,那么使用 @unchecked 可以解决您的问题。

关于scala - 如何抑制Scala中的 "match may not be exhaustive"警告?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42526314/

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