5

(2.10.0)でto定義されたメソッドの次の定義に出くわしました。TraversableLike

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
}

この回答によると、@uV無効化された分散チェック。それは危険ですね。なぜ私はそれをしたいのですか?

4

1 に答える 1

2

答えは、この質問の答えと非常に似ていると思います: Scala で @uncheckedVariance が必要になるのはいつですか? GenericTraversableTemplate で使用されるのはなぜですか?

ビルダー (暗黙のパラメーターcbf) は不変 (おそらく共変) および可変 (不変) コレクションに存在するため、ここではアノテーションを使用して、to両方のタイプのコレクションでメソッドが機能するようにします。

于 2013-03-05T08:23:49.393 に答える