折叠操作中@unchecked的正确语法是什么

时间:2019-02-20 11:50:50

标签: scala

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

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

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

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

1 个答案:

答案 0 :(得分:2)

尝试

(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