Mal*_*off 5 annotations scala type-safety
我刚绊倒方法的以下定义to由下式定义TraversableLike(2.10.0):
override def to[Col[_]](implicit cbf: CanBuildFrom[Nothing, A, Col[A @uV]]): Col[A @uV] = {
val b = cbf()
b.sizeHint(this)
b ++= thisCollection
b.result
}
Run Code Online (Sandbox Code Playgroud)
根据这个答案,@uV禁用差异检查。这听起来很危险。我为什么要这样做?
小智 2
我想答案与这个问题的答案非常相似:When is @uncheckedVariance need in Scala, and Why is it use in GenericTraversableTemplate?
由于构建器(隐式参数cbf)针对不可变(可能协变)和可变(不变)集合而存在,因此此处可能使用注释来使该to方法适用于这两种类型的集合。
| 归档时间: |
|
| 查看次数: |
206 次 |
| 最近记录: |