Scala警告删除以防万一

标签 scala warnings pattern-matching type-erasure case-statement

我在 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/

相关文章:

冲突类型错误和整数指针,没有强制转换警告 C

erlang - 模式在 Erlang 中不匹配

scala - 将列表转换为映射,其中键为 Scala 中的索引

spring - 如何在 Scala 中填充 Wicket @SpringBeans?

scala - Play 框架 2.5 记录 `?` 问号而不是行号

scala - SBT 无法识别用 java 文件编写的 junit 测试用例

installation - 为什么 Phalcon 2 会引发 "undefined symbol: php_pdo_get_dbh_ce in Unknown on line 0"警告?

java - Comparable 使用未经检查或不安全的操作

python - 使用滚动窗口准确检测数据帧中具有重复值(相同头部和相同尾部)的序列

正则表达式 url block 指定的词和优化