我在 Scala 函数中有以下模式匹配案例:
def someFunction(sequences: Iterable[Seq[Int]]):Seq[Int] = sequences match{
case Seq() => Seq(1)
case _ => ...
...
}
我收到以下警告:
warning: non variable type-argument A in type pattern Seq[A] is unchecked since it is eliminated by erasure
case Seq(_) => Seq(1)
^
one warning found
这是什么意思?
最佳答案
这个警告有点虚假,不会出现在 Scala 2.10 上。事实上,我认为这是 Scala 2.8 的回归(也就是说,它不存在)。
警告的原因是它解释了Seq(_)
意思是Seq(_: Seq[Int])
,因为这是 sequences
的类型参数,然后提示它不能保证 Int
在那里,因为在编译时,它将被删除。正如我所说,这是虚假的。
关于Scala警告删除以防万一,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11005608/