我正在使用WartRemover避免 Scala 2.11 代码中可能出现错误的工具。
具体来说,我想知道如何修复“推断的产品类型”错误。
查看存储库文档,我只能看到失败示例,但我想知道如何修复该错误:
https://github.com/puffnfresh/wartremover#product .
在做作业时,我最终得到了另一个链接,它解释了如何修复类型推断失败错误 https://blog.cppcabrera.com/posts/scala-wart-remover.html 。我引用“如果您看到下面的任何警告,修复通常就像提供类型注释一样简单”,但我不明白这意味着什么。我真的需要一个具体的例子。
最佳答案
Product
是一种非常抽象的高级类型,几乎没有约束。当推断的类型为 Product
时,通常表明您犯了错误。例如。如果你有:
List((1, "hi", 0.4f), (2, "bye"), (3, "aloha", 7.2f))
然后编译就可以了,给你一个List[Product]
。但是,就像推断 Any
时一样,这可能是一个错误 - 您可能希望它是一个 List[(Int, String, Float)]
并且意味着中间元组中的第三个条目。
如果您确实想要一个 List[Product]
,您可以通过明确给出类型参数来避免收到警告:
List[Product]((1, "hi", 0.4f), (2, "bye"), (3, "aloha", 7.2f))
关于scala - 如何修复 Scala 的 WartRemover 工具中的产品类型推断错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27529366/