Scala 为什么要通过@uV禁用差异检查?
我刚刚偶然发现了(2.10.0)定义的方法Scala 为什么要通过@uV禁用差异检查?,scala,annotations,type-safety,Scala,Annotations,Type Safety,我刚刚偶然发现了(2.10.0)定义的方法到的以下定义: 根据,@uV禁用了差异检查。听起来很危险。我为什么要这样做?我想答案与这个问题的答案非常相似: 由于存在不可变(可能是协变)和可变(不变)集合的构建器(隐式参数cbf),因此此处可能使用注释使to方法适用于这两种类型的集合 override def to[Col[_]](implicit cbf: CanBuildFrom[Nothing, A, Col[A @uV]]): Col[A @uV] = { val b = cbf()
到的以下定义:
根据,@uV
禁用了差异检查。听起来很危险。我为什么要这样做?我想答案与这个问题的答案非常相似:
由于存在不可变(可能是协变)和可变(不变)集合的构建器(隐式参数cbf
),因此此处可能使用注释使to
方法适用于这两种类型的集合
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
}