Scala 如何解决价值丢弃或未使用警告的问题
而建议通过使用显式或隐式地打开编译器标志,如Scala 如何解决价值丢弃或未使用警告的问题,scala,compiler-warnings,compiler-options,Scala,Compiler Warnings,Compiler Options,而建议通过使用显式或隐式地打开编译器标志,如-Wvalue discard或-Wunused:implicits 有时你需要围绕这些问题展开工作,但要以一种明确的方式进行;因为我们通常会考虑这样的错误,这就是首先使用编译器标志的原因。 这些情况下的一个比较常见的工作区是以下void函数(由Rob Norris提供) @inline final def void(args:Any*):Unit=(args,())。\u 2 然而,这种功能有两个问题 它有一些不必要的额外拨款;即varargs和T
-Wvalue discard
或-Wunused:implicits
有时你需要围绕这些问题展开工作,但要以一种明确的方式进行;因为我们通常会考虑这样的错误,这就是首先使用编译器标志的原因。
这些情况下的一个比较常见的工作区是以下void
函数(由Rob Norris提供)
@inline final def void(args:Any*):Unit=(args,())。\u 2
然而,这种功能有两个问题
2.13
有两种方法可以禁用这两种警告
def testFix1()(隐式i:Int):单位={
val_uui=i
val=数据
}
def testFix2()(隐式i:Int):单位={
i:单位
数据:单位
}
我们没有正式的参考或证据,但相信第二种选择应该是透明的;在某种意义上,它不应该在运行时产生任何影响,比如额外的分配或不需要的代码生成
您可以看到代码正在运行
3 据我们所知,同样的技巧应该适用于Scala 3(也称为Dotty) 2.12
??为什么不使用
@nowarn
(2.13)或(2.12)来抑制警告?作为void
-@ghik的替代方案,我将答案设置为社区wiki,因此可以在那里随意添加:)