我有一个折叠操作,如下所示:

val ops: Seq[Op] ...
(x /: ops) { case (y, MyOp(z)) =>
...
}


除了MyOp之外,Op可以具有许多其他类型,但是在这种情况下,我知道所有Ops都是MyOps,因此我想添加@unchecked注释以删除编译器警告。

在此示例中,应将@unchecked放在哪里?

最佳答案

尝试

(x /: ops)((y0, op) =>
  ((y0, op): @unchecked) match {
    case (y, MyOp(z)) => ???
  }
)


https://www.scala-lang.org/files/archive/spec/2.11/11-annotations.html#scala-compiler-annotations

09-25 16:09