Spec-Zone.ru › Scala 3.2

Трейт ReusableBuilder.ReusableBuilder

Исходный код

трейт ReusableBuilder[-Elem, +To] extends Builder[Elem, To]

ReusableBuilder — это маркерный трейт, указывающий, что Builder может быть повторно использован для построения более чем одного экземпляра коллекции. В частности, вызов result(), за которым следует clear() , создаст коллекцию и сбросит билдер, чтобы начать построение новой коллекции того же типа.

В общем случае, после result(), нельзя вызывать ни один метод, кроме clear(). Подклассы должны реализовывать и документировать другие допустимые последовательности операций (например, вызов других методов после result(), чтобы получить различные состояния строящейся коллекции).

Параметры типа
Elem

тип элементов, которые добавляются в билдер.

To

тип коллекции, которая им создаётся.

Супертипы
трейт Builder[Elem, To]
трейт Growable[Elem]
трейт Clearable
класс Object
трейт Matchable
класс Any
Известные подтипы
17 типов
класс VectorBuilder[A]
класс AnyRefMapBuilder[K, V]
класс ArrayBuilder[T]
класс ofBoolean
класс ofByte
класс ofChar
класс ofDouble
класс ofFloat
класс ofInt
класс ofLong
класс ofRef[T]
класс ofShort
класс ofUnit
класс ImmutableBuilder[A, C]
класс ListBuffer[A]
класс LongMapBuilder[V]
класс StringBuilder

Абстрактные методы

Исходный код
переопределенный def clear(): Unit

Очищает содержимое этого билдера. После выполнения этого метода билдер не будет содержать элементов.

Если он выполняется сразу после вызова result(), это позволяет создать новый экземпляр того же типа коллекции.

Классы определений Builder -> Clearable

Исходный код
переопределенный def result(): To

Создаёт коллекцию из добавленных элементов.

После вызова result, поведение всех остальных методов не определено, за исключением clear(). Если вызвать clear(), билдер сбрасывается и может использоваться для построения другого экземпляра.

Возвращает

коллекцию, содержащую элементы, добавленные в этот билдер.

Классы определений Builder

Наследованные методы

Исходный код
final def ++=(xs: IterableOnce[Elem]): Growable.this.type

Псевдоним для addAll

Унаследованно от Growable

Исходный код
final def +=(elem: Elem): Growable.this.type

Псевдоним для addOne

Унаследованно от Growable

Исходный код
def addAll(xs: IterableOnce[Elem]): Growable.this.type

Добавляет все элементы, полученные из IterableOnce, в эту коллекцию.

Параметры
xs

IterableOnce, производящий элементы для добавления.

Возвращает

сама коллекция growable.

Унаследованно от Growable

Исходный код
def addOne(elem: Elem): Growable.this.type

Добавляет один элемент в эту коллекцию growable.

Параметры
elem

элемент для добавления.

Возвращает

сама коллекция growable

Унаследованно от Growable

Исходный код
def knownSize: Int

Возвращает

Количество элементов в строящейся коллекции, если оно может быть вычислено без больших затрат, в противном случае -1. По умолчанию всегда возвращает -1.

Унаследованно от Growable

Исходный код
def mapResult[NewTo](f: To => NewTo): Builder[A, NewTo]

Билдер, полученный из этого билдера путём применения функции f к результату.

Унаследованно от Builder

Исходный код
final def sizeHint(coll: IterableOnce[_], delta: Int): Unit

Указание о том, что ожидается, что размер result этого билдера будет таким же, как у заданной коллекции, плюс некоторое значение delta. Это указание будет применено только если размер коллекции известен. Некоторые классы билдеров будут оптимизировать своё представление на основе указания. Однако реализации билдеров всё равно должны работать корректно, даже если указание неверно, то есть добавлено другое количество элементов.

Параметры
coll

коллекция, которая служит указанием размера результата.

delta

корректировка, которая добавляется к coll.size, чтобы получить указание размера.

Унаследованно от Builder

Исходный код
def sizeHint(size: Int): Unit

Указание о том, сколько элементов ожидается добавить при вызове следующего result. Некоторые классы билдеров будут оптимизировать своё представление на основе указания. Однако реализации билдеров всё равно должны работать корректно, даже если указание неверно, то есть добавлено другое количество элементов.

Параметры
size

указание о том, сколько элементов будет добавлено.

Унаследованно от Builder

Исходный код
final def sizeHintBounded(size: Int, boundingColl: Iterable[_]): Unit

Указание о том, сколько элементов ожидается добавить при вызове следующего result вместе с верхней границей, заданной размером другой коллекции. Некоторые классы билдеров будут оптимизировать своё представление на основе указания. Однако реализации билдеров всё равно должны работать корректно, даже если указание неверно, то есть добавлено другое количество элементов.

Параметры
boundingColl

ограничивающая коллекция. Если это IndexedSeqLike, размеры, превышающие размер коллекции, уменьшаются.

size

указание о том, сколько элементов будет добавлено.

Унаследованно от Builder

© 2002-2022 EPFL, with contributions from Lightbend.
Licensed under the Apache License, Version 2.0.
https://scala-lang.org/api/3.2.0/scala/collection/mutable/ReusableBuilder.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API