0

ここで Scala の可変 ListBuffer のソース コードを見ています https://github.com/scala/scala/blob/v2.11.8/src/library/scala/collection/mutable/ListBuffer.scala#L158

.asInstanceOf[::[A]]そして、158行目でこのキャストに出くわしました。意味 がわかりませんでした。::ドキュメントで見つけることができる境界表記ではありません。ただし、これは List のメソッドです。このキャストが何をしているのか誰か説明できますか?

4

1 に答える 1

1

::頭と尾で構成されるリスト コンストラクタです (どちらも持たないのNilではなく)。つまり、少なくとも 1 つの要素 (head) が含まれていることを保証する一種のリストです。

その定義はhttps://github.com/scala/scala/blob/v2.11.8/src/library/scala/collection/immutable/List.scala#L439List.scalaにあります。

したがって、このキャストが行うことは、cursor型付けされた asList[A]をより具体的なに変換し、リストの末尾を表す::[A]そのtl変数にアクセスできるようにすることです。効率的なupdate運用に必要なもの。

于 2016-12-07T19:55:12.910 に答える