Spec-Zone.ru › Scala 3.2

Класс Option.Option

Объект-компаньон • Исходный код

sealed abstract class Option[+A] extends IterableOnce[A] with Product with Serializable

Представляет необязательные значения. Экземпляры Option могут быть либо экземпляром $some, либо объектом $none.

Наиболее распространенный способ использования экземпляра $option — рассматривать его как коллекцию или монаду и использовать map,flatMap, filter, или foreach:

val name: Option[String] = request getParameter "name"
val upper = name map { _.trim } filter { _.length != 0 } map { _.toUpperCase }
println(upper getOrElse "")

Обратите внимание, что это эквивалентно

val upper = for {
  name <- request getParameter "name"
  trimmed <- Some(name.trim)
  upper <- Some(trimmed.toUpperCase) if trimmed.length != 0
} yield upper
println(upper getOrElse "")

Из-за того, как работает for comprehension, если из request.getParameter возвращается $none, всё выражение принимает значение $none.

Это позволяет создавать сложные цепочки значений $option без необходимости проверки существования значения.

Вот полезные методы, которые существуют как для $some, так и для $none: - isDefined — True, если не пусто - isEmpty — True, если пусто - nonEmpty — True, если не пусто - orElse — Вычисляет и возвращает альтернативное необязательное значение, если пусто - getOrElse — Вычисляет и возвращает альтернативное значение, если пусто - get — Возвращает значение, выбрасывает исключение, если пусто - fold — Применяет функцию к необязательному значению, возвращает значение по умолчанию, если пусто - map — Применяет функцию к необязательному значению - flatMap — То же, что и map, но функция должна возвращать необязательное значение - foreach — Применяет процедуру к значению варианта - collect — Применяет частичное сопоставление шаблонов к необязательному значению - filter — Необязательное значение удовлетворяет предикату - filterNot — Необязательное значение не удовлетворяет предикату - exists — Применяет предикат к необязательному значению, или false, если пусто - forall — Применяет предикат к необязательному значению, или true, если пусто - contains — Проверяет, равно ли значение необязательному значению, или false, если пусто - zip — Объединяет два необязательных значения, создавая парное необязательное значение - unzip — Разделяет пару необязательных значений на два необязательных значения - unzip3 — Разделяет тройку необязательных значений на три необязательных значения - toList — Единичный список необязательного значения, в противном случае пустой список

Менее распространенный способ использования значений $option — через сопоставление шаблонов:

val nameMaybe = request getParameter "name"
nameMaybe match {
  case Some(name) =>
    println(name.trim.toUppercase)
  case None =>
    println("No name value")
}

Работа с кодом, который иногда может возвращать null, может быть безопасно обернута в $option, чтобы превратиться в $none и $some в противном случае.

val abc = new java.util.HashMap[Int, String]
abc.put(1, "A")
bMaybe = Option(abc.get(2))
bMaybe match {
 case Some(b) =>
   println(s"Found $b")
 case None =>
   println("Not found")
}
Примечание

Многие методы здесь дублируют методы в иерархии Traversable, но они дублируются по определенной причине: неявное преобразование, как правило, оставляет Iterable в ситуациях, когда можно было сохранить Option.

Супертипы
trait Serializable
trait Product
trait Equals
trait IterableOnce[A]
class Object
trait Matchable
class Any
Известные подтипы
object None.type
class Some[A]
Тип self
Option[A]

Classlikes

Исходный код
class WithFilter(p: A => Boolean)

Нам нужен целый класс WithFilter, чтобы соблюдать контракт «не создавать новую коллекцию», хотя кажется маловероятным, что это сильно повлияет на коллекцию с максимальным размером 1.

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

Исходный код
def get: A

Возвращает значение варианта.

Это эквивалентно:

option match {
 case Some(x) => x
 case None    => throw new Exception
}
Выбрасывает
NoSuchElementException

если вариант пустой.

Примечание

Вариант должен быть непустым.

Конкретные методы

Исходный код
final def collect[B](pf: PartialFunction[A, B]): Option[B]

Возвращает scala.Some, содержащий результат применения pf к содержимому этого варианта scala.Option, если этот вариант непустой и pf определен для этого значения. В противном случае возвращает None.

Параметры значения
pf

частичная функция.

Возвращает

результат применения pf к значению этого scala.Option (если возможно), или None.

Пример
// Returns Some(HTTP) because the partial function covers the case.
Some("http") collect {case "http" => "HTTP"}
// Returns None because the partial function doesn't cover the case.
Some("ftp") collect {case "http" => "HTTP"}
// Returns None because the option is empty. There is no value to pass to the partial function.
None collect {case value => value}

Исходный код
final def contains[A1 >: A](elem: A1): Boolean

Проверяет, содержит ли вариант данное значение в качестве элемента.

Это эквивалентно:

option match {
 case Some(x) => x == elem
 case None    => false
}
Параметры значения
elem

тестируемый элемент.

Возвращает

true если вариант имеет элемент, равный (как определено ==) elem, false в противном случае.

Пример
// Returns true because Some instance contains string "something" which equals "something".
Some("something") contains "something"
// Returns false because "something" != "anything".
Some("something") contains "anything"
// Returns false when method called on None.
None contains "anything"

Исходный код
final def exists(p: A => Boolean): Boolean

Возвращает true, если этот вариант непустой и предикат p возвращает true при применении к значению этого scala.Option. В противном случае возвращает false.

Это эквивалентно:

option match {
 case Some(x) => p(x)
 case None    => false
}
Параметры значения
p

предикат для проверки

Исходный код
final def filter(p: A => Boolean): Option[A]

Возвращает этот scala.Option, если он непустой и применение предиката p к значению этого scala.Option возвращает true. В противном случае возвращает None.

Это эквивалентно:

option match {
 case Some(x) if p(x) => Some(x)
 case _               => None
}
Параметры значения
p

предикат для проверки.

Исходный код
final def filterNot(p: A => Boolean): Option[A]

Возвращает этот scala.Option, если он непустой и применение предиката p к значению этого scala.Option возвращает false. В противном случае возвращает None.

Это эквивалентно:

option match {
 case Some(x) if !p(x) => Some(x)
 case _                => None
}
Параметры значения
p

предикат для проверки.

Исходный код
final def flatMap[B](f: A => Option[B]): Option[B]

Возвращает результат применения f к значению этого scala.Option, если этот scala.Option непустой. Возвращает None если этот scala.Option пустой. Несколько отличается от map, поскольку f ожидается, что вернёт scala.Option (который может быть None).

Это эквивалентно:

option match {
 case Some(x) => f(x)
 case None    => None
}
Параметры значения
f

функция для применения

См. также

map

foreach

Исходный код
def flatten[B](implicit ev: A <:< Option[B]): Option[B]

Возвращает вложенное значение scala.Option, если оно непусто. В противном случае возвращает None.

Это эквивалентно:

option match {
 case Some(Some(b)) => Some(b)
 case _             => None
}
Параметры значения
ev

неявное преобразование, утверждающее, что значение также является scala.Option.

См. также

flatMap

Пример
Some(Some("something")).flatten

Исходный код
final def fold[B](ifEmpty: => B)(f: A => B): B

Возвращает результат применения f к значению этого scala.Option, если scala.Option не пустое. В противном случае вычисляет выражение ifEmpty.

Это эквивалентно:

option match {
 case Some(x) => f(x)
 case None    => ifEmpty
}

Это также эквивалентно:

option map f getOrElse ifEmpty
Параметры значения
f

функция для применения, если не пусто.

ifEmpty

выражение для вычисления, если пусто.

Источник
final def forall(p: A => Boolean): Boolean

Возвращает true, если этот параметр пустой или предикат p возвращает true при применении к значению этого scala.Option.

Это эквивалентно:

option match {
 case Some(x) => p(x)
 case None    => true
}
Параметры значения
p

предикат для проверки

Источник
final def foreach[U](f: A => U): Unit

Применяет заданную процедуру f к значению параметра, если оно непустое. В противном случае ничего не делает.

Это эквивалентно:

option match {
 case Some(x) => f(x)
 case None    => ()
}
Параметры значения
f

процедура для применения.

См. также

map

flatMap

Источник
final def getOrElse[B >: A](default: => B): B

Возвращает значение параметра, если параметр непустой, в противном случае возвращает результат вычисления default.

Это эквивалентно:

option match {
 case Some(x) => x
 case None    => default
}
Параметры значения
default

выражение по умолчанию.

Источник
final def isDefined: Boolean

Возвращает true, если параметр является экземпляром scala.Some, в противном случае false.

Это эквивалентно:

option match {
 case Some(_) => true
 case None    => false
}

Источник
final def isEmpty: Boolean

Возвращает true, если параметр None, в противном случае false.

Это эквивалентно:

option match {
 case Some(_) => false
 case None    => true
}

Источник
def iterableFactory: IterableFactory[Iterable]

Неявным образом добавлено option2Iterable

Компаньон-объект этого итерируемого набора, предоставляющий различные методы фабрик.

Примечание

При реализации пользовательского типа коллекции и уточнении CC до нового типа, этот метод необходимо переопределить, чтобы вернуть фабрику для нового типа (в противном случае компилятор выдаст ошибку).

Источник
def iterator: Iterator[A]

Возвращает итератор-одиночку, возвращающий значение scala.Option, если оно непустое, или пустой итератор, если параметр пустой.

Источник
final override def knownSize: Int

Возвращает

Количество элементов в этом параметре, если его можно вычислить быстро, -1 в противном случае. Быстро обычно означает: Не требует обхода коллекции.

Классы определения IterableOnce

Источник
def lazyZip[B](that: Iterable[B]): LazyZip2[A, B, Iterable]

Неявным образом добавлено option2Iterable

Аналогично zip, за исключением того, что элементы в каждой коллекции не потребляются до тех пор, пока на возвращаемом LazyZip2 декораторе не вызовется строгое действие.

Вызовы lazyZip можно объединять, чтобы поддерживать более высокие арности (до 4) без дополнительных затрат на построение и деконструирование промежуточных кортежей.

val xs = List(1, 2, 3)
val res = (xs lazyZip xs lazyZip xs lazyZip xs).map((a, b, c, d) => a + b + c + d)
// res == List(4, 8, 12)
Параметры типа
B

тип второго элемента в каждой возможной паре

Параметры значения
that

итерируемый набор, предоставляющий второй элемент каждой возможной пары

Возвращает

декоратор LazyZip2, который позволяет выполнять строгие операции над лениво вычисляемыми парами или объединять вызовы lazyZip. Также поддерживается неявное преобразование в Iterable[(A, B)].

Источник
final def map[B](f: A => B): Option[B]

Возвращает scala.Some, содержащий результат применения f к значению этого scala.Option, если этот scala.Option не пустой. В противном случае возвращает None.

Это эквивалентно:

option match {
 case Some(x) => Some(f(x))
 case None    => None
}
Параметры значения
f

функция для применения

См. также

flatMap

foreach

Примечание

Это похоже на flatMap, за исключением того, что f не нужно оборачивать результат в scala.Option.

Источник
final def nonEmpty: Boolean

Возвращает false, если параметр None, в противном случае true.

Это эквивалентно:

option match {
 case Some(_) => true
 case None    => false
}
Примечание

Реализовано здесь для избежания неявного преобразования в Iterable.

Источник
final def orElse[B >: A](alternative: => Option[B]): Option[B]

Возвращает этот scala.Option, если он непустой, в противном случае возвращает результат вычисления alternative.

Это эквивалентно:

option match {
 case Some(x) => Some(x)
 case None    => alternative
}
Параметры значения
alternative

выражение альтернативы.

Источник
final def orNull[A1 >: A](implicit ev: Null <:< A1): A1

Возвращает значение параметра, если оно непустое, или null если оно пустое.

Хотя использование null не рекомендуется, код, написанный для использования scala.Option, часто должен взаимодействовать с кодом, который ожидает и возвращает null.

Это эквивалентно:

option match {
 case Some(x) => x
 case None    => null
}
Пример
val initialText: Option[String] = getInitialText
val textField = new JComponent(initialText.orNull,20)

Источник
final def toLeft[X](right: => X): Either[A, X]

Возвращает scala.util.Right, содержащий заданный аргумент right, если этот параметр пустой, или scala.util.Left, содержащий значение этого scala.Option, если этот scala.Option не пустой.

Это эквивалентно:

option match {
 case Some(x) => Left(x)
 case None    => Right(right)
}
Параметры значения
right

выражение для вычисления и возврата, если этот параметр пустой

См. также

toRight

Источник
def toList: List[A]

Возвращает список-одиночку, содержащий значение scala.Option, если оно непустое, или пустой список, если scala.Option пустой.

Это эквивалентно:

option match {
 case Some(x) => List(x)
 case None    => Nil
}

Источник
final def toRight[X](left: => X): Either[X, A]

Возвращает scala.util.Left, содержащий заданный аргумент left , если этот scala.Option пустой, или scala.util.Right, содержащий значение этого scala.Option, если он непустой.

Это эквивалентно:

option match {
 case Some(x) => Right(x)
 case None    => Left(left)
}
Параметры значения
left

выражение, которое вычисляется и возвращается, если это пустое

См. также

toLeft

Источник
final def unzip[A1, A2](implicit asPair: A <:< (A1, A2)): (Option[A1], Option[A2])

Преобразует Option пары в Option первого элемента и Option второго элемента.

Это эквивалентно:

option match {
  case Some((x, y)) => (Some(x), Some(y))
  case _            => (None,    None)
}
Параметры типа
A1

тип первой половины пары элементов

A2

тип второй половины пары элементов

Параметры значения
asPair

явное преобразование, которое утверждает, что тип элемента этого Option является парой.

Возвращает

пара Option, содержащая соответственно первую и вторую половину пары элементов этого Option.

Источник
final def unzip3[A1, A2, A3](implicit asTriple: A <:< (A1, A2, A3)): (Option[A1], Option[A2], Option[A3])

Преобразует Option тройки в три Option, по одному для каждого элемента тройки.

Это эквивалентно:

option match {
  case Some((x, y, z)) => (Some(x), Some(y), Some(z))
  case _               => (None,    None,    None)
}
Параметры типа
A1

тип первого из трех элементов тройки

A2

тип второго из трех элементов тройки

A3

тип третьего из трех элементов тройки

Параметры значения
asTriple

явное преобразование, которое утверждает, что тип элемента этого Option является тройкой.

Возвращает

тройка Option, содержащая соответственно первый, второй и третий элементы из тройки элементов этого Option.

Источник
final def withFilter(p: A => Boolean): WithFilter

Необходимо, чтобы scala.Option не преобразовывался неявно в scala.collection.Iterable в for выражениях.

Источник
final def zip[A1 >: A, B](that: Option[B]): Option[(A1, B)]

Возвращает scala.Some, сформированный из этого option и другого option, объединяя соответствующие элементы в пару. Если один из двух option пуст, возвращается None.

Это эквивалентно:

(option1, option2) match {
  case (Some(x), Some(y)) => Some((x, y))
  case _                  => None
}
Параметры значения
that

option, который будет объединён

Пример
// Returns Some(("foo", "bar")) because both options are nonempty.
Some("foo") zip Some("bar")
// Returns None because `that` option is empty.
Some("foo") zip None
// Returns None because `this` option is empty.
None zip Some("bar")

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

Источник
final def ++[B >: A](suffix: IterableOnce[B]): CC[B]

Неявное добавление option2Iterable

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

Наследуется из IterableOps

Источник
final def addString(b: StringBuilder): StringBuilder

Неявное добавление option2Iterable

Добавляет все элементы этой коллекции в строковый билдер. Записанный текст состоит из строковых представлений (относительно метода toString) всех элементов этой коллекции без разделительной строки.

Пример:

scala> val a = List(1,2,3,4)
a: List[Int] = List(1, 2, 3, 4)

scala> val b = new StringBuilder()
b: StringBuilder =

scala> val h = a.addString(b)
h: StringBuilder = 1234
Параметры значения
b

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

Возвращает

строковый билдер b в который были добавлены элементы.

Наследуется из IterableOnceOps

Источник
final def addString(b: StringBuilder, sep: String): StringBuilder

Неявное добавление option2Iterable

Добавляет все элементы этой коллекции в строковый билдер с разделительной строкой. Записанный текст состоит из строковых представлений (относительно метода toString) всех элементов этой коллекции, разделенных строкой sep.

Пример:

scala> val a = List(1,2,3,4)
a: List[Int] = List(1, 2, 3, 4)

scala> val b = new StringBuilder()
b: StringBuilder =

scala> a.addString(b, ", ")
res0: StringBuilder = 1, 2, 3, 4
Параметры значения
b

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

sep

разделительная строка.

Возвращает

строковый билдер b в который были добавлены элементы.

Наследуется из IterableOnceOps

Источник
def addString(b: StringBuilder, start: String, sep: String, end: String): StringBuilder

Неявное добавление option2Iterable

Добавляет все элементы этой коллекции в строковый билдер, используя начальную, конечную и разделительные строки. Записанный текст начинается со строки start и заканчивается строкой end. Внутри строковые представления (относительно метода toString) всех элементов этой коллекции разделяются строкой sep.

Пример:

scala> val a = List(1,2,3,4)
a: List[Int] = List(1, 2, 3, 4)

scala> val b = new StringBuilder()
b: StringBuilder =

scala> a.addString(b , "List(" , ", " , ")")
res5: StringBuilder = List(1, 2, 3, 4)
Параметры значения
b

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

end

конечная строка.

sep

разделительная строка.

start

начальная строка.

Возвращает

строковый билдер b в который были добавлены элементы.

Наследуется из IterableOnceOps

Источник
def canEqual(that: Any): Boolean

Метод, который должен вызываться из каждого хорошо спроектированного метода equals, который может быть переопределен в подклассе. См. Programming in Scala, Chapter 28 для обсуждения и проектирования.

Параметры значения
that

значение, проверяемое на возможность равенства

Возвращает

true, если этот экземпляр может быть равен that, в противном случае false

Наследуется из Equals

Источник
def collect[B](pf: PartialFunction[A, B]): CC[B]

Неявное добавление option2Iterable

Создаёт новую коллекцию итераций, применяя частичную функцию ко всем элементам этой коллекции итераций, для которых функция определена.

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

тип элемента возвращаемой итерационной коллекции.

Параметры значения
pf

частичная функция, которая фильтрует и отображает итерационную коллекцию.

Возвращает

новая итерационная коллекция, полученная путём применения данной частичной функции pf к каждому элементу, для которого она определена, и собирая результаты. Порядок элементов сохраняется.

Наследуется из IterableOps

Источник
def collectFirst[B](pf: PartialFunction[A, B]): Option[B]

Неявное добавление option2Iterable

Находит первый элемент коллекции, для которого определена заданная частичная функция, и применяет к нему частичную функцию.

Примечание: может не завершаться для коллекций бесконечного размера.

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

Параметры значения
pf

частичная функция

Возвращает

значение опции, содержащее pf, применённое к первому значению, для которого оно определено, или None, если такового нет.

Пример

Seq("a", 1, 5L).collectFirst({ case x: Int => x*10 }) = Some(10)

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

Источник
def concat[B >: A](suffix: IterableOnce[B]): CC[B]

Неявно добавлено option2Iterable

Возвращает новую итерируемую коллекцию, содержащую элементы левого операнда, за которыми следуют элементы правого операнда. Тип элементов итерируемой коллекции — это самый специфичный суперкласс, охватывающий типы элементов двух операндов.

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

тип элементов возвращаемой коллекции.

Параметры значения
suffix

проходимое значение для добавления.

Возвращает

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

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

Источник
def copyToArray[B >: A](xs: Array[B], start: Int, len: Int): Int

Неявно добавлено option2Iterable

Копирует элементы в массив, возвращая количество скопированных элементов.

Заполняет заданный массив xs начиная с индекса start не более чем len элементами этой коллекции.

Копирование прекращается, как только будут скопированы все элементы этой коллекции, или будет достигнут конец массива, или len элементов.

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

тип элементов массива.

Параметры значения
len

максимальное количество копируемых элементов.

start

начальный индекс xs.

xs

массив для заполнения.

Возвращает

количество элементов, записанных в массив

Примечание

Повторное использование: после вызова этого метода следует отказаться от итератора, на котором он был вызван. Его использование не определено и может быть изменено.

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

Источник
def copyToArray[B >: A](xs: Array[B], start: Int): Int

Неявно добавлено option2Iterable

Копирует элементы в массив, возвращая количество скопированных элементов.

Заполняет заданный массив xs начиная с индекса start значениями этой коллекции.

Копирование прекращается, как только будут скопированы все элементы этой коллекции или будет достигнут конец массива.

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

тип элементов массива.

Параметры значения
start

начальный индекс xs.

xs

массив для заполнения.

Возвращает

количество элементов, записанных в массив

Примечание

Повторное использование: после вызова этого метода следует отказаться от итератора, на котором он был вызван. Его использование не определено и может быть изменено.

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

Источник
def copyToArray[B >: A](xs: Array[B]): Int

Неявно добавлено option2Iterable

Копирует элементы в массив, возвращая количество скопированных элементов.

Заполняет заданный массив xs начиная с индекса start значениями этой коллекции.

Копирование прекращается, как только будут скопированы все элементы этой коллекции или будет достигнут конец массива.

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

тип элементов массива.

Параметры значения
xs

массив для заполнения.

Возвращает

количество элементов, записанных в массив

Примечание

Повторное использование: после вызова этого метода следует отказаться от итератора, на котором он был вызван. Его использование не определено и может быть изменено.

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

Источник
def corresponds[B](that: IterableOnce[B])(p: (A, B) => Boolean): Boolean

Неявно добавлено option2Iterable

Проверяет, удовлетворяет ли каждый элемент итератора этой коллекции соответствующему элементу другой коллекции, удовлетворяя предикату проверки.

Примечание: не будет завершаться для бесконечных коллекций.

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

тип элементов that

Параметры значения
p

предикат проверки, который сопоставляет элементы обеих коллекций

that

другая коллекция

Возвращает

true, если обе коллекции имеют одинаковую длину и p(x, y) равно true для всех соответствующих элементов x этого итератора и y that, в противном случае false

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

Источник
def count(p: A => Boolean): Int

Неявно добавлено option2Iterable

Подсчитывает количество элементов в коллекции, удовлетворяющих предикату.

Примечание: не будет завершаться для бесконечных коллекций.

Параметры значения
p

предикат для проверки элементов.

Возвращает

количество элементов, удовлетворяющих предикату p.

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

Источник
def drop(n: Int): C

Неявно добавлено option2Iterable

Выбирает все элементы, кроме первых n.

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

Параметры значения
n

количество элементов для удаления из этой итерируемой коллекции.

Возвращает

итерируемая коллекция, состоящая из всех элементов этой итерируемой коллекции, кроме первых n элементов, или пустая итерируемая коллекция, если эта итерируемая коллекция содержит меньше n элементов. Если n отрицательно, не удалять элементы.

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

Источник
def dropRight(n: Int): C

Неявно добавлено option2Iterable

Выбирает все элементы, кроме последних n.

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

Параметры значения
n

количество элементов для удаления из этой итерируемой коллекции.

Возвращает

итерируемая коллекция, состоящая из всех элементов этой итерируемой коллекции, кроме последних n элементов, или пустая итерируемая коллекция, если эта итерируемая коллекция содержит меньше n элементов. Если n отрицательно, не удалять элементы.

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

Источник
def dropWhile(p: A => Boolean): C

Неявным образом добавлено option2Iterable

Удаляет самый длинный префикс элементов, удовлетворяющих предикату.

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

Параметры значения
p

Предикат, используемый для проверки элементов.

Возвращает

самый длинный суффикс этой итерируемой коллекции, первый элемент которой не удовлетворяет предикату p.

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

Источник
def exists(p: A => Boolean): Boolean

Неявным образом добавлено option2Iterable

Проверяет, выполняется ли предикат хотя бы для одного элемента этой коллекции.

Примечание: может не завершиться для коллекций бесконечного размера.

Параметры значения
p

предикат, используемый для проверки элементов.

Возвращает

true если указанный предикат p удовлетворяется хотя бы одним элементом этой коллекции, в противном случае false

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

Источник
def filter(pred: A => Boolean): C

Неявным образом добавлено option2Iterable

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

Параметры значения
p

предикат, используемый для проверки элементов.

Возвращает

новая итерируемая коллекция, состоящая из всех элементов этой итерируемой коллекции, удовлетворяющих заданному предикату p. Порядок элементов сохраняется.

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

Источник
def filterNot(pred: A => Boolean): C

Неявным образом добавлено option2Iterable

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

Параметры значения
pred

предикат, используемый для проверки элементов.

Возвращает

новая итерируемая коллекция, содержащая все элементы этой итерируемой коллекции, не удовлетворяющие заданному предикату pred. Порядок элементов может быть не сохранён.

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

Источник
def find(p: A => Boolean): Option[A]

Неявным образом добавлено option2Iterable

Находит первый элемент коллекции, удовлетворяющий предикату (если такой есть).

Примечание: может не завершиться для коллекций бесконечного размера.

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

Параметры значения
p

используемый предикат для проверки элементов.

Возвращает

значение Option, содержащее первый элемент коллекции, удовлетворяющий p, или None если таковой не существует.

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

Источник
def flatMap[B](f: A => IterableOnce[B]): CC[B]

Неявным образом добавлено option2Iterable

Создаёт новую итерируемую коллекцию, применяя функцию ко всем элементам этой итерируемой коллекции и используя элементы полученных коллекций.

Например:

def getWords(lines: Seq[String]): Seq[String] = lines flatMap (line => line split "\\W+")

Тип результирующей коллекции определяется статическим типом итерируемой коллекции. Иногда это может приводить к неожиданным результатам. Например:

// lettersOf will return a Seq[Char] of likely repeated letters, instead of a Set
def lettersOf(words: Seq[String]) = words flatMap (word => word.toSet)

// lettersOf will return a Set[Char], not a Seq
def lettersOf(words: Seq[String]) = words.toSet flatMap ((word: String) => word.toSeq)

// xs will be an Iterable[Int]
val xs = Map("a" -> List(11,111), "b" -> List(22,222)).flatMap(_._2)

// ys will be a Map[Int, Int]
val ys = Map("a" -> List(1 -> 11,1 -> 111), "b" -> List(2 -> 22,2 -> 222)).flatMap(_._2)
Параметры типа
B

тип элементов возвращаемой коллекции.

Параметры значения
f

функция, применяемая к каждому элементу.

Возвращает

новая итерируемая коллекция, полученная путём применения заданной функции, возвращающей коллекцию f к каждому элементу этой итерируемой коллекции и конкатенации результатов.

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

Источник
def flatten[B](implicit asIterable: A => IterableOnce[B]): CC[B]

Неявным образом добавлено option2Iterable

Преобразует эту итерируемую коллекцию из перечисляемых коллекций в итерируемую коллекцию, образованную элементами этих перечисляемых коллекций.

Тип результирующей коллекции будет определяться типом итерируемой коллекции. Например:

val xs = List(
           Set(1, 2, 3),
           Set(1, 2, 3)
         ).flatten
// xs == List(1, 2, 3, 1, 2, 3)

val ys = Set(
           List(1, 2, 3),
           List(3, 2, 1)
         ).flatten
// ys == Set(1, 2, 3)
Параметры типа
B

тип элементов каждой перечисляемой коллекции.

Параметры значения
asIterable

неявное преобразование, утверждающее, что тип элементов этой итерируемой коллекции является GenTraversable.

Возвращает

новая итерируемая коллекция, полученная в результате конкатенации всех итерируемых коллекций элементов.

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

Источник
def fold[A1 >: A](z: A1)(op: (A1, A1) => A1): A1

Неявным образом добавлено option2Iterable

Складывает элементы этой коллекции, используя указанный ассоциативный бинарный оператор. Реализация по умолчанию в IterableOnce эквивалентна foldLeft, но может быть переопределена для более эффективного порядка обхода.

Порядок выполнения операций над элементами не определён и может быть не детерминированным.

Примечание: не завершится для коллекций бесконечного размера.

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

параметр типа для бинарного оператора, являющийся супертипом A.

Параметры значения
op

бинарный оператор, который должен быть ассоциативным.

z

нейтральный элемент для операции fold; может добавляться к результату произвольное количество раз и не должен изменять результат (например, Nil для конкатенации списков, 0 для сложения или 1 для умножения).

Возвращает

результат применения оператора fold op между всеми элементами и z, или z если эта коллекция пуста.

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

Источник
def foldLeft[B](z: B)(op: (B, A) => B): B

Неявным образом добавлено option2Iterable

Применяет бинарный оператор к начальному значению и всем элементам этой коллекции слева направо.

Примечание: не завершится для коллекций бесконечного размера.

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

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

тип результата бинарного оператора.

Параметры значения
op

бинарный оператор.

z

начальное значение.

Возвращает

результат вставки op между последовательными элементами этой коллекции слева направо с начальным значением z слева: op(...op(z, x1), x2, ..., xn), где x1, ..., xn — элементы этой коллекции. Возвращает z если эта коллекция пуста.

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

Источник
def foldRight[B](z: B)(op: (A, B) => B): B

Неявным образом добавлено option2Iterable

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

Примечание: не завершится для коллекций бесконечного размера.

END_OF_DOCUMENT_MARKER

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

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

тип результата бинарного оператора.

Параметры значения
op

бинарный оператор.

z

начальное значение.

Возвращает

результат вставки op между последовательными элементами этой коллекции, идущими справа налево с начальным значением z справа: op(x1, op(x2, ... op(xn, z)...)) где x1, ..., xn - элементы этой коллекции. Возвращает z если эта коллекция пуста.

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

Источник
def forall(p: A => Boolean): Boolean

Неявное добавление option2Iterable

Проверяет, выполняется ли предикат для всех элементов этой коллекции.

Примечание: может не завершиться для коллекций бесконечного размера.

Параметры значения
p

предикат, используемый для проверки элементов.

Возвращает

true если эта коллекция пуста или данный предикат p выполняется для всех элементов этой коллекции, в противном случае false.

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

Источник
def foreach[U](f: A => U): Unit

Неявное добавление option2Iterable

Применяет f к каждому элементу для побочных эффектов. Примечание: параметр [U] необходим для помощи в выводе типов scalac.

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

Источник
protected def fromSpecific(coll: IterableOnce[A]): CC[A]

Неявное добавление option2Iterable

Определяет, как преобразовать заданную Iterable[A] в коллекцию типа C.

Этот процесс может быть выполнен строго или нестрого (т. е. без оценки элементов результирующих коллекций). Другими словами, этот метод определяет модель оценки коллекции.

Примечание

При реализации пользовательского типа коллекции и уточнении C до нового типа, этот метод необходимо переопределить (в противном случае компилятор выдаст ошибку). В общем случае, когда C =:= CC[A], это можно сделать, смешав в себе трайт scala.collection.IterableFactoryDefaults, который реализует метод с использованием iterableFactory.

Как показывает аннотация @uncheckedVariance, использование этого метода может быть небезопасным. Однако, до тех пор, пока он вызывается с Iterable[A] полученным от this коллекции (как это происходит в реализациях операций, где мы используем View[A] коллекцию), он безопасен.

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

Источник
def groupBy[K](f: A => K): Map[K, C]

Неявное добавление option2Iterable

Разделяет эту итерируемую коллекцию на карту итерируемых коллекций в соответствии с функцией-дискриминатором.

Примечание: даже при применении к представлению или ленивой коллекции элементы всегда будут принудительно вычисляться.

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

тип ключей, возвращаемых функцией-дискриминатором.

Параметры значения
f

функция-дискриминатор.

Возвращает

Карта, сопоставляющая ключи итерируемым коллекциям, где соблюдается следующее инвариантное свойство:

(xs groupBy f)(k) = xs filter (x => f(x) == k)

То есть, каждый ключ k связан с итерируемой коллекцией тех элементов x, для которых f(x) равно k.

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

Источник
def groupMap[K, B](key: A => K)(f: A => B): Map[K, CC[B]]

Неявное добавление option2Iterable

Разделяет эту итерируемую коллекцию на карту итерируемых коллекций в соответствии с функцией-дискриминатором key. Каждый элемент в группе преобразуется в значение типа B с помощью функции value.

Это эквивалентно groupBy(key).mapValues(_.map(f)), но более эффективно.

case class User(name: String, age: Int)

def namesByAge(users: Seq[User]): Map[Int, Seq[String]] =
  users.groupMap(_.age)(_.name)

Примечание: даже при применении к представлению или ленивой коллекции элементы всегда будут принудительно вычисляться.

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

тип значений, возвращаемых функцией преобразования

K

тип ключей, возвращаемых функцией-дискриминатором

Параметры значения
f

функция преобразования элементов

key

функция-дискриминатор

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

Источник
def groupMapReduce[K, B](key: A => K)(f: A => B)(reduce: (B, B) => B): Map[K, B]

Неявное добавление option2Iterable

Разделяет эту итерируемую коллекцию на карту в соответствии с функцией-дискриминатором key. Все значения, имеющие одинаковый дискриминатор, затем преобразуются с помощью функции f и затем сводятся к одному значению с помощью функции reduce.

Это эквивалентно groupBy(key).mapValues(_.map(f).reduce(reduce)), но более эффективно.

def occurrences[A](as: Seq[A]): Map[A, Int] =
  as.groupMapReduce(identity)(_ => 1)(_ + _)

Примечание: даже при применении к представлению или ленивой коллекции элементы всегда будут принудительно вычисляться.

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

Источник
def grouped(size: Int): Iterator[C]

Неявное добавление option2Iterable

Разделяет элементы на итерируемые коллекции фиксированного размера.

Параметры значения
size

количество элементов в группе

Возвращает

Итератор, генерирующий итерируемые коллекции размером size, за исключением последней, которая может быть меньше size size если элементы не делятся на размер группы без остатка.

См. также

scala.collection.Iterator, метод grouped

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

Источник
def head: A

Неявное добавление option2Iterable

Выбирает первый элемент этой итерируемой коллекции.

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

Возвращает

первый элемент этой итерируемой коллекции.

Бросает исключение
NoSuchElementException

если итерируемая коллекция пуста.

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

Источник
def headOption: Option[A]

Неявное добавление option2Iterable

Выбирает первый элемент, если он существует.

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

Возвращает

первый элемент этой итерируемой коллекции, если она не пуста, None если она пуста.

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

Источник
def init: C

Неявно добавлено option2Iterable

Начальная часть коллекции без её последнего элемента.

Примечание: Даже при применении к представлению или ленивой коллекции она всегда будет принудительно вычислять элементы.

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

Источник
def inits: Iterator[C]

Неявно добавлено option2Iterable

Итерирует по начальным частям этой итерируемой коллекции. Первое значение будет этой итерируемой коллекцией, а последнее — пустой итерируемой коллекцией, а промежуточные значения — результаты последовательных применений init.

Примечание: Даже при применении к представлению или ленивой коллекции она всегда будет принудительно вычислять элементы.

Возвращает

итератор всех начальных частей этой итерируемой коллекции

Пример

List(1,2,3).inits = Iterator(List(1,2,3), List(1,2), List(1), Nil)

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

Источник
def isEmpty: Boolean

Неявно добавлено option2Iterable

Проверяет, пуста ли коллекция.

Примечание: Реализации в подклассах, которые не являются многократно итерируемыми, должны позаботиться о том, чтобы не потреблять элементы, когда isEmpty вызывается.

Возвращает

true если коллекция не содержит элементов, false в противном случае.

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

Источник
def iterator: Iterator[A]

Неявно добавлено option2Iterable

Итератор может быть использован только один раз

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

Источник
def knownSize: Int

Неявно добавлено option2Iterable
Возвращает

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

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

Источник
def last: A

Неявно добавлено option2Iterable

Выбирает последний элемент.

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

Возвращает

Последний элемент этой итерируемой коллекции.

Исключение
NoSuchElementException

Если итерируемая коллекция пуста.

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

Источник
def lastOption: Option[A]

Неявно добавлено option2Iterable

Выбирает последний элемент, если он есть.

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

Возвращает

последний элемент этой итерируемой коллекции, если она непустая, None если она пустая.

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

Источник
def map[B](f: A => B): CC[B]

Неявно добавлено option2Iterable

Создаёт новую итерируемую коллекцию, применяя функцию ко всем элементам этой итерируемой коллекции.

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

тип элементов возвращаемой итерируемой коллекции.

Параметры значения
f

функция, применяемая к каждому элементу.

Возвращает

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

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

Источник
def max[B >: A](implicit ord: Ordering[B]): A

Неявно добавлено option2Iterable

Находит наибольший элемент.

Примечание: не завершится для коллекций бесконечного размера.

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

Тип, по которому определяется порядок.

Параметры значения
ord

Порядок для сравнения элементов.

Возвращает

наибольший элемент этой коллекции по отношению к порядку ord.

Исключение
UnsupportedOperationException

если эта коллекция пуста.

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

Источник
def maxBy[B](f: A => B)(implicit cmp: Ordering[B]): A

Неявно добавлено option2Iterable

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

Примечание: не завершится для коллекций бесконечного размера.

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

Тип результата функции f.

Параметры значения
cmp

Порядок для сравнения элементов.

f

Функция измерения.

Возвращает

первый элемент этой коллекции с наибольшим значением, измеренным функцией f, относительно порядка cmp.

Исключение
UnsupportedOperationException

если эта коллекция пуста.

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

Источник
def maxByOption[B](f: A => B)(implicit cmp: Ordering[B]): Option[A]

Неявно добавлено option2Iterable

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

Примечание: не завершится для коллекций бесконечного размера.

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

Тип результата функции f.

Параметры значения
cmp

Порядок для сравнения элементов.

f

Функция измерения.

Возвращает

значение-опцию, содержащую первый элемент этой коллекции с наибольшим значением, измеренным функцией f, относительно порядка cmp.

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

Источник
def maxOption[B >: A](implicit ord: Ordering[B]): Option[A]

Неявно добавлено option2Iterable

Находит наибольший элемент.

Примечание: не завершится для коллекций бесконечного размера.

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

Тип, по которому определяется порядок.

Параметры значения
ord

Порядок для сравнения элементов.

Возвращает

значение-опцию, содержащую наибольший элемент этой коллекции по отношению к порядку ord.

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

Source
def min[B >: A](implicit ord: Ordering[B]): A

Implicitly added by option2Iterable

Находит наименьший элемент.

Примечание: не завершит работу для коллекций бесконечного размера.

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

Тип, по которому определяется порядок.

Параметры значения
ord

Порядок, который используется для сравнения элементов.

Возвращает

наименьший элемент этой коллекции относительно порядка ord.

Исключения
UnsupportedOperationException

если эта коллекция пуста.

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

Source
def minBy[B](f: A => B)(implicit cmp: Ordering[B]): A

Implicitly added by option2Iterable

Находит первый элемент, который дает наименьшее значение, измеренное функцией f.

Примечание: не завершит работу для коллекций бесконечного размера.

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

Тип результата функции f.

Параметры значения
cmp

Порядок, который используется для сравнения элементов.

f

Функция измерения.

Возвращает

первый элемент этой коллекции с наименьшим значением, измеренным функцией f, относительно порядка cmp.

Исключения
UnsupportedOperationException

если эта коллекция пуста.

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

Source
def minByOption[B](f: A => B)(implicit cmp: Ordering[B]): Option[A]

Implicitly added by option2Iterable

Находит первый элемент, который дает наименьшее значение, измеренное функцией f.

Примечание: не завершит работу для коллекций бесконечного размера.

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

Тип результата функции f.

Параметры значения
cmp

Порядок, который используется для сравнения элементов.

f

Функция измерения.

Возвращает

значение Option, содержащее первый элемент этой коллекции с наименьшим значением, измеренным функцией f, относительно порядка cmp.

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

Source
def minOption[B >: A](implicit ord: Ordering[B]): Option[A]

Implicitly added by option2Iterable

Находит наименьший элемент.

Примечание: не завершит работу для коллекций бесконечного размера.

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

Тип, по которому определяется порядок.

Параметры значения
ord

Порядок, который используется для сравнения элементов.

Возвращает

значение Option, содержащее наименьший элемент этой коллекции относительно порядка ord.

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

Source
final def mkString: String

Implicitly added by option2Iterable

Отображает все элементы этой коллекции в строке.

Делегирует вызов addString, который может быть переопределён.

Возвращает

строковое представление этой коллекции. В результирующей строке строковые представления (с учётом метода toString) всех элементов этой коллекции следуют друг за другом без разделителя.

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

Исходный код
final def mkString(sep: String): String

Неявно добавлен методом option2Iterable

Отображает все элементы этой коллекции в строке с использованием разделителя.

Делегирует вызов addString, который может быть переопределён.

Параметры значения
sep

строка-разделитель.

Возвращает

строковое представление этой коллекции. В результирующей строке строковые представления (с учётом метода toString) всех элементов этой коллекции разделены строкой sep.

Пример

List(1, 2, 3).mkString("|") = "1|2|3"

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

Исходный код
final def mkString(start: String, sep: String, end: String): String

Неявно добавлен методом option2Iterable

Отображает все элементы этой коллекции в строке с использованием начальной, конечной и разделительных строк.

Делегирует вызов addString, который может быть переопределён.

Параметры значения
end

конечная строка.

sep

строка-разделитель.

start

начальная строка.

Возвращает

строковое представление этой коллекции. Результирующая строка начинается со строки start и заканчивается строкой end. Внутри строковые представления (с учётом метода toString) всех элементов этой коллекции разделены строкой sep.

Пример

List(1, 2, 3).mkString("(", "; ", ")") = "(1; 2; 3)"

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

Исходный код
protected def newSpecificBuilder: Builder[A, CC[A]]

Неявно добавлен методом option2Iterable
Возвращает

строгий билдер для того же типа коллекции. Обратите внимание, что в случае ленивых коллекций (например, scala.collection.View или scala.collection.immutable.LazyList), реализация этого метода возможна, но полученный Builder нарушит ленивость. Следовательно, операции предпочтительнее реализовывать с помощью fromSpecific, а не этого метода.

Примечание

При реализации пользовательского типа коллекции и уточнении C до нового типа, этот метод необходимо переопределить (в противном случае компилятор выдаст ошибку). В общем случае, где C =:= CC[A], это можно сделать, смешав в себе трейт scala.collection.IterableFactoryDefaults, который реализует метод с использованием iterableFactory.

Как видно из аннотации @uncheckedVariance, использование этого метода может быть небезопасно. Однако, до тех пор, пока возвращаемый билдер получает только значения A, взятые из экземпляра this, он безопасен.

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

Исходный код
def nonEmpty: Boolean

Неявно добавлен методом option2Iterable

Проверяет, не является ли коллекция пустой.

Возвращает

true если коллекция содержит как минимум один элемент, false в противном случае.

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

Исходный код
def partition(p: A => Boolean): (C, C)

Неявно добавлено option2Iterable

Пара, состоящая во-первых, из всех элементов, удовлетворяющих предикату p, и, во-вторых, из всех элементов, которые этому предикату не удовлетворяют. Интересно тем, что разделяет коллекцию на две части.

Предоставленная здесь реализация по умолчанию требует два прохода по коллекции. Строгие коллекции имеют переопределённую версию partition в StrictOptimizedIterableOps, которая требует только одного прохода.

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

Исходный код
def partitionMap[A1, A2](f: A => Either[A1, A2]): (CC[A1], CC[A2])

Неявно добавлено option2Iterable

Применяет функцию f к каждому элементу итерируемой коллекции и возвращает пару итерируемых коллекций: первая состоит из тех значений, которые возвращает f, заключённых в scala.util.Left, вторая — из тех, что заключены в scala.util.Right.

Пример:

val xs = Iterable(1, "one", 2, "two", 3, "three") partitionMap {
 case i: Int => Left(i)
 case s: String => Right(s)
}
// xs == (Iterable(1, 2, 3),
//        Iterable(one, two, three))
Параметры типа
A1

тип элементов первой результирующей коллекции

A2

тип элементов второй результирующей коллекции

Параметры значения
f

функция 'разделения', которая отображает элементы этой итерируемой коллекции на scala.util.Either

Возвращает

пару итерируемых коллекций: первая состоит из тех значений, которые возвращает f, заключённых в scala.util.Left, вторая — из тех, что заключены в scala.util.Right.

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

Исходный код
def product[B >: A](implicit num: Numeric[B]): B

Неявно добавлено option2Iterable

Перемножает элементы этой коллекции.

Примечание: не завершится для коллекций бесконечной длины.

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

тип результата оператора *.

Параметры значения
num

явный параметр, определяющий набор числовых операций, включающий оператор *, используемый для вычисления произведения.

Возвращает

произведение всех элементов коллекции относительно оператора * в num.

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

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

Размер этого произведения.

Возвращает

для произведения A(x1, ..., xk), возвращает k.

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

Исходный код
def productElement(n: Int): Any

n-й элемент этого произведения, нумерация с 0. Другими словами, для произведения A(x1, ..., xk), возвращает x(n+1), где 0 <= n < k.

Параметры значения
n

индекс возвращаемого элемента

Возвращает

элемент n, элементы после первого элемента

Исключения
IndexOutOfBoundsException

если n выходит за пределы диапазона(n < 0 || n >= productArity).

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

Исходный код
def productElementName(n: Int): String

Имя n-го элемента этого произведения, нумерация с 0. В реализации по умолчанию — пустая строка.

Параметры значения
n

индекс имени элемента для возврата

Возвращает

имя указанного элемента

Исключения
IndexOutOfBoundsException

если n выходит за пределы диапазона (n < 0 || n >= productArity).

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

Исходный код
def productElementNames: Iterator[String]

Итератор по именам всех элементов этого произведения.

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

Исходный код
def productIterator: Iterator[Any]

Итератор по всем элементам этого произведения.

Возвращает

в реализации по умолчанию, Iterator[Any]

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

Исходный код
def productPrefix: String

Строка, используемая в методах toString производных классов. Реализации могут переопределить этот метод, чтобы добавить строковый префикс к результату методов toString.

Возвращает

в реализации по умолчанию, пустая строка

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

Исходный код
def reduce[B >: A](op: (B, B) => B): B

Неявно добавлено option2Iterable

Сводит элементы этой коллекции с использованием заданного ассоциативного бинарного оператора.

Порядок выполнения операций над элементами не определён и может быть не детерминированным.

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

тип параметра для бинарного оператора, надтипа A.

Параметры значения
op

бинарный оператор, который должен быть ассоциативным.

Возвращает

результат применения оператора reduce op между всеми элементами, если коллекция не пуста.

Исключения
UnsupportedOperationException

если коллекция пуста.

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

Исходный код
def reduceLeft[B >: A](op: (B, A) => B): B

Неявно добавлено option2Iterable

Применяет бинарный оператор ко всем элементам этой коллекции слева направо.

Примечание: не завершится для коллекций бесконечной длины.

Примечание: может возвращать разные результаты для разных запусков, если только тип подлежащей коллекции не является упорядоченным, или оператор ассоциативен и коммутативен.

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

тип результата бинарного оператора.

Параметры значения
op

бинарный оператор.

Возвращает

результат вставки op между последовательными элементами этой коллекции слева направо: op( op( ... op(x1, x2) ..., xn-1), xn), где x1, ..., xn — элементы этой коллекции.

Исключения
UnsupportedOperationException

если коллекция пуста.

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

Исходный код
def reduceLeftOption[B >: A](op: (B, A) => B): Option[B]

Неявно добавлено option2Iterable

Возможно применяет бинарный оператор ко всем элементам этой коллекции слева направо.

Примечание: не завершится для коллекций бесконечной длины.

Примечание: может возвращать разные результаты для разных запусков, если только тип подлежащей коллекции не является упорядоченным, или оператор ассоциативен и коммутативен.

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

тип результата бинарного оператора.

Параметры значения
op

бинарный оператор.

Возвращает

значение типа Option, содержащее результат reduceLeft(op) , если коллекция не пуста, None в противном случае.

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

Исходный код
def reduceOption[B >: A](op: (B, B) => B): Option[B]

Неявным образом добавлен option2Iterable

Применяет заданный ассоциативный бинарный оператор ко всем элементам этой коллекции, если они есть.

Порядок выполнения операций над элементами не определен и может быть не детерминированным.

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

параметр типа для бинарного оператора, являющийся супертипом A.

Параметры значения
op

бинарный оператор, который должен быть ассоциативным.

Возвращает

значение типа Option, содержащее результат применения оператора reduce op к всем элементам, если коллекция не пуста, и None в противном случае.

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

Исходный код
def reduceRight[B >: A](op: (A, B) => B): B

Неявным образом добавлен option2Iterable

Применяет бинарный оператор ко всем элементам этой коллекции справа налево.

Примечание: не будет завершаться для коллекций бесконечного размера.

Примечание: может возвращать разные результаты для разных запусков, если тип коллекции не упорядочен или оператор не ассоциативен и не коммутативен.

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

тип результата бинарного оператора.

Параметры значения
op

бинарный оператор.

Возвращает

результат вставки op между последовательными элементами этой коллекции справа налево: op(x1, op(x2, ..., op(xn-1, xn)...)) , где x1, ..., xn — элементы этой коллекции.

Исключения
UnsupportedOperationException

если эта коллекция пуста.

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

Исходный код
def reduceRightOption[B >: A](op: (A, B) => B): Option[B]

Неявным образом добавлен option2Iterable

Необязательное применение бинарного оператора ко всем элементам этой коллекции справа налево.

Примечание: не будет завершаться для коллекций бесконечного размера.

Примечание: может возвращать разные результаты для разных запусков, если тип коллекции упорядочен или оператор ассоциативен и коммутативен.

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

тип результата бинарного оператора.

Параметры значения
op

бинарный оператор.

Возвращает

значение типа Option, содержащее результат reduceRight(op) , если коллекция не пуста, None в противном случае.

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

Исходный код
protected def reversed: Iterable[A]

Неявным образом добавлен option2Iterable
Унаследовано от IterableOnceOps

Исходный код
def scan[B >: A](z: B)(op: (B, B) => B): CC[B]

Неявным образом добавлен option2Iterable

Вычисляет префиксный скан элементов коллекции.

Примечание: нейтральный элемент z может применяться более одного раза.

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

тип элементов результирующей коллекции

Параметры значения
op

ассоциативный оператор для сканирования

z

нейтральный элемент для оператора op

Возвращает

новая итерируемая коллекция, содержащая префиксный скан элементов в этой итерируемой коллекции

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

Исходный код
def scanLeft[B](z: B)(op: (B, A) => B): CC[B]

Неявным образом добавлен option2Iterable

Производит итерируемую коллекцию, содержащую кумулятивные результаты применения оператора слева направо, включая начальное значение.

Примечание: не будет завершаться для коллекций бесконечного размера.

Примечание: может возвращать разные результаты для разных запусков, если тип коллекции не упорядочен.

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

тип элементов в результирующей коллекции

Параметры значения
op

бинарный оператор, применяемый к промежуточному результату и элементу

z

начальное значение

Возвращает

коллекция с промежуточными результатами

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

Исходный код
def scanRight[B](z: B)(op: (A, B) => B): CC[B]

Неявным образом добавлен option2Iterable

Производит коллекцию, содержащую кумулятивные результаты применения оператора справа налево. Головка коллекции — это последний кумулятивный результат.

Примечание: не будет завершаться для коллекций бесконечного размера.

Примечание: может возвращать разные результаты для разных запусков, если тип коллекции не упорядочен.

Примечание: даже при применении к представлению или ленивой коллекции элементы всегда будут форсироваться.

Пример:

List(1, 2, 3, 4).scanRight(0)(_ + _) == List(10, 9, 7, 4, 0)
Параметры типа
B

тип элементов в результирующей коллекции

Параметры значения
op

бинарный оператор, применяемый к промежуточному результату и элементу

z

начальное значение

Возвращает

коллекция с промежуточными результатами

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

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

Неявным образом добавлен option2Iterable

Размер этой коллекции.

Примечание: не будет завершаться для коллекций бесконечного размера.

Возвращает

количество элементов в этой коллекции.

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

Исходный код
def sizeCompare(that: Iterable[_]): Int

Неявным образом добавлен option2Iterable

Сравнивает размер этой итерируемой коллекции с размером другой Iterable.

Параметры значения
that

другая Iterable , размер которой сравнивается с размером этой итерируемой коллекции.

Возвращает

Значение x, где

x <  0       if this.size <  that.size
x == 0       if this.size == that.size
x >  0       if this.size >  that.size

Метод, как реализован здесь, не вызывает size напрямую; его время выполнения составляет O(this.size min that.size) вместо O(this.size + that.size). Метод следует переопределить, если вычисление size является недорогим, и knownSize возвращает -1.

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

Исходный код
def sizeCompare(otherSize: Int): Int

Неявным образом добавлено option2Iterable

Сравнивает размер этого итерируемого набора со значением-тестом.

Параметры значения
otherSize

значение-тест, которое сравнивается с размером.

Возвращает

Значение x, где

x <  0       if this.size <  otherSize
x == 0       if this.size == otherSize
x >  0       if this.size >  otherSize

Метод, как реализован здесь, не вызывает size напрямую; его время выполнения составляет O(size min otherSize) вместо O(size). Метод должен быть переопределен, если вычисление size является дешёвым, и knownSize возвращает -1.

См. также

sizeIs

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

Источник
final def sizeIs: SizeCompareOps

Неявным образом добавлено option2Iterable

Возвращает значение класса, содержащее операции для сравнения размера этого итерируемого набора со значением-тестом.

Эти операции реализованы с точки зрения sizeCompare(Int) и позволяют использовать следующие более читаемые варианты:

this.sizeIs < size     // this.sizeCompare(size) < 0
this.sizeIs <= size    // this.sizeCompare(size) <= 0
this.sizeIs == size    // this.sizeCompare(size) == 0
this.sizeIs != size    // this.sizeCompare(size) != 0
this.sizeIs >= size    // this.sizeCompare(size) >= 0
this.sizeIs > size     // this.sizeCompare(size) > 0
Унаследовано от IterableOps

Источник
def slice(from: Int, until: Int): C

Неявным образом добавлено option2Iterable

Выбирает интервал элементов. Возвращаемый итерируемый набор состоит из всех элементов x, которые удовлетворяют инварианту:

from <= indexOf(x) < until

Примечание: может возвращать разные результаты при разных запусках, если тип базового набора не упорядочен.

Параметры значения
from

наименьший индекс, который нужно включить из этого итерируемого набора.

until

наименьший индекс, который нужно ИСКЛЮЧИТЬ из этого итерируемого набора.

Возвращает

итерируемый набор, содержащий элементы, большие или равные индексу from, и простирающийся до (но не включая) индекс until этого итерируемого набора.

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

Источник
def sliding(size: Int, step: Int): Iterator[C]

Неявным образом добавлено option2Iterable

Группирует элементы в блоки фиксированного размера, пропуская "скользящее окно" по ним (в отличие от разбиения на части, как это сделано в grouped.)

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

Параметры значения
size

количество элементов в группе

step

расстояние между первыми элементами последовательных групп

Возвращает

Итератор, генерирующий итерируемые наборы размера size, за исключением последнего элемента (который может быть единственным элементом), который будет меньше, если оставшихся элементов для группировки меньше, чем size.

См. также

scala.collection.Iterator, метод sliding

Пример

List(1, 2, 3, 4, 5).sliding(2, 2) = Iterator(List(1, 2), List(3, 4), List(5))

List(1, 2, 3, 4, 5, 6).sliding(2, 3) = Iterator(List(1, 2), List(4, 5))

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

Источник
def sliding(size: Int): Iterator[C]

Неявным образом добавлено option2Iterable

Группирует элементы в блоки фиксированного размера, пропуская "скользящее окно" по ним (в отличие от разбиения на части, как это сделано в grouped.)

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

Параметры значения
size

количество элементов в группе

Возвращает

Итератор, генерирующий итерируемые наборы размера size, за исключением непустого набора с менее чем size элементами, который возвращает итератор, производящий исходный набор как единственный элемент.

См. также

scala.collection.Iterator, метод sliding

Пример

List().sliding(2) = empty iterator

List(1).sliding(2) = Iterator(List(1))

List(1, 2).sliding(2) = Iterator(List(1, 2))

List(1, 2, 3).sliding(2) = Iterator(List(1, 2), List(2, 3))

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

Источник
def span(p: A => Boolean): (C, C)

Неявным образом добавлено option2Iterable

Разделяет этот итерируемый набор на пару префикс/суффикс в соответствии с предикатом.

Примечание: c span p эквивалентно (но, возможно, более эффективно, чем) (c takeWhile p, c dropWhile p), при условии, что вычисление предиката p не вызывает побочных эффектов.

Примечание: может возвращать разные результаты при разных запусках, если тип базового набора не упорядочен.

Параметры значения
p

предикат-тест

Возвращает

пара, состоящая из самого длинного префикса этого итерируемого набора, элементы которого удовлетворяют p, и остаток этого итерируемого набора.

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

Источник
def stepper[S <: Stepper[_]](implicit shape: StepperShape[A, S]): S

Неявным образом добавлено option2Iterable

Возвращает scala.collection.Stepper для элементов этого набора.

Stepper позволяет создавать Java-поток для работы с набором, см. scala.jdk.StreamConverters. Для наборов, содержащих примитивные значения, Stepper можно использовать как итератор, который не упаковывает элементы.

Неявный параметр scala.collection.StepperShape определяет тип возвращаемого Stepper в соответствии с типом элемента этого набора.

  • Для наборов, содержащих Int, Short, Byte или Char, возвращается scala.collection.IntStepper

  • Для наборов, содержащих Double или Float, возвращается scala.collection.DoubleStepper

  • Для наборов, содержащих Long, возвращается scala.collection.LongStepper

  • Для любого другого типа элементов возвращается scala.collection.AnyStepper

Обратите внимание, что этот метод переопределяется в подклассах, и тип возвращаемого значения уточняется до S with EfficientSplit, например, scala.collection.IndexedSeqOps.stepper. Для Stepper, помеченных scala.collection.Stepper.EfficientSplit, преобразователи в scala.jdk.StreamConverters позволяют создавать параллельные потоки, в то время как обычные Stepper могут быть преобразованы только в последовательные потоки.

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

Источник
def stepper[S <: Stepper[_]](implicit shape: StepperShape[A, S]): S

Возвращает scala.collection.Stepper для элементов этого набора.

Stepper позволяет создавать Java-поток для работы с набором, см. scala.jdk.StreamConverters. Для наборов, содержащих примитивные значения, Stepper можно использовать как итератор, который не упаковывает элементы.

Неявный параметр scala.collection.StepperShape определяет тип возвращаемого Stepper в соответствии с типом элемента этого набора.

END_OF_DOCUMENT_MARKER
  • Для коллекций Int, Short, Byte или Char, возвращается scala.collection.IntStepper

  • Для коллекций Double или Float, возвращается scala.collection.DoubleStepper

  • Для коллекций Long возвращается scala.collection.LongStepper

  • Для любых других типов элементов возвращается scala.collection.AnyStepper

Обратите внимание, что этот метод переопределён в подклассах, и тип возвращаемого значения уточняется до S with EfficientSplit, например scala.collection.IndexedSeqOps.stepper. Для Stepper, помеченных scala.collection.Stepper.EfficientSplit, преобразователи из scala.jdk.StreamConverters позволяют создавать параллельные потоки, в то время как обычные Stepper могут быть преобразованы только в последовательные потоки.

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

Источник
def sum[B >: A](implicit num: Numeric[B]): B

Неявным образом добавлен option2Iterable

Суммирует элементы этой коллекции.

Примечание: не завершится для коллекций бесконечного размера.

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

тип результата оператора +.

Параметры значения
num

неявный параметр, определяющий набор числовых операций, включающих оператор +, который используется для формирования суммы.

Возвращает

сумма всех элементов этой коллекции по отношению к оператору + в num.

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

Источник
def tail: C

Неявным образом добавлен option2Iterable

Остальная часть коллекции без её первого элемента.

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

Источник
def tails: Iterator[C]

Неявным образом добавлен option2Iterable

Перебирает хвосты этой итерируемой коллекции. Первое значение будет этой итерируемой коллекцией, а последнее — пустой итерируемой коллекцией, а промежуточные значения — результатами последовательных применений tail.

Возвращает

итератор по всем хвостам этой итерируемой коллекции

Пример

List(1,2,3).tails = Iterator(List(1,2,3), List(2,3), List(3), Nil)

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

Источник
def take(n: Int): C

Неявным образом добавлен option2Iterable

Выбирает первые n элементов.

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

Параметры значения
n

количество элементов для взятия из этой итерируемой коллекции.

Возвращает

итерируемая коллекция, содержащая только первые n элементов этой итерируемой коллекции, или же вся итерируемая коллекция, если она содержит меньше n элементов. Если n отрицательно, возвращает пустую итерируемую коллекцию.

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

Источник
def takeRight(n: Int): C

Неявным образом добавлен option2Iterable

Выбирает последние n элементов.

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

Параметры значения
n

количество элементов для взятия из этой итерируемой коллекции.

Возвращает

итерируемая коллекция, содержащая только последние n элементов этой итерируемой коллекции, или же вся итерируемая коллекция, если она содержит меньше n элементов. Если n отрицательно, возвращает пустую итерируемую коллекцию.

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

Источник
def takeWhile(p: A => Boolean): C

Неявным образом добавлен option2Iterable

Берёт самую длинную префиксную последовательность элементов, удовлетворяющую предикату.

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

Параметры значения
p

Предикат, используемый для проверки элементов.

Возвращает

самый длинный префикс этой итерируемой коллекции, элементы которого удовлетворяют предикату p.

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

Источник
def to[C1](factory: Factory[A, C1]): C1

Неявным образом добавлен option2Iterable

Преобразует эту коллекцию в соответствующее представление для текущего типа элемента A с помощью фабрики коллекций factory. Примеры использования:

xs.to(List) xs.to(ArrayBuffer) xs.to(BitSet) // для xs: Iterable[Int]

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

Источник
def toArray[B >: A : ClassTag]: Array[B]

Неявным образом добавлен option2Iterable

Преобразует коллекцию в массив.

Примечание: НЕ вызывайте Array.from из этого метода.

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

Источник
final def toBuffer[B >: A]: Buffer[B]

Неявным образом добавлен option2Iterable
Унаследовано от IterableOnceOps

Источник
def toIndexedSeq: IndexedSeq[A]

Неявным образом добавлен option2Iterable
Унаследовано от IterableOnceOps

Источник
def toList: List[A]

Неявным образом добавлен option2Iterable
Унаследовано от IterableOnceOps

Источник
def toMap[K, V](implicit ev: A <:< (K, V)): Map[K, V]

Неявным образом добавлен option2Iterable
Унаследовано от IterableOnceOps

Источник
def toSeq: Seq[A]

Неявным образом добавлен option2Iterable
Возвращает

Это коллекция в виде Seq[A]. Это эквивалентно to(Seq), но может быть быстрее.

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

Источник
def toSet[B >: A]: Set[B]

Неявным образом добавлено option2Iterable
Унаследовано от IterableOnceOps

Источник
def toVector: Vector[A]

Неявным образом добавлено option2Iterable
Унаследовано от IterableOnceOps

Источник
def transpose[B](implicit asIterable: A => Iterable[B]): CC[CC[B]]

Неявным образом добавлено option2Iterable

Транспонирует эту итерируемую коллекцию итерируемых коллекций в итерируемую коллекцию итерируемых коллекций.

Тип результирующей коллекции будет определяться статическим типом итерируемой коллекции. Например:

val xs = List(
           Set(1, 2, 3),
           Set(4, 5, 6)).transpose
// xs == List(
//         List(1, 4),
//         List(2, 5),
//         List(3, 6))

val ys = Vector(
           List(1, 2, 3),
           List(4, 5, 6)).transpose
// ys == Vector(
//         Vector(1, 4),
//         Vector(2, 5),
//         Vector(3, 6))

Примечание: Даже при применении к представлению или ленивой коллекции элементы всегда будут принудительно вычисляться.

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

тип элементов каждой итерируемой коллекции.

Параметры значения
asIterable

неявное преобразование, которое утверждает, что тип элемента этой итерируемой коллекции является Iterable.

Возвращает

двумерную итерируемую коллекцию итерируемых коллекций, в которой n-я строка соответствует n-му столбцу этой итерируемой коллекции.

Исключения
IllegalArgumentException

если все коллекции в этой итерируемой коллекции не имеют одинаковый размер.

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

Источник
def unzip[A1, A2](implicit asPair: A => (A1, A2)): (CC[A1], CC[A2])

Неявным образом добавлено option2Iterable

Преобразует эту итерируемую коллекцию пар в две коллекции первой и второй половины каждой пары.

val xs = Iterable(
           (1, "one"),
           (2, "two"),
           (3, "three")).unzip
// xs == (Iterable(1, 2, 3),
//        Iterable(one, two, three))
Параметры типа
A1

тип первой половины пар элементов

A2

тип второй половины пар элементов

Параметры значения
asPair

неявное преобразование, которое утверждает, что тип элемента этой итерируемой коллекции является парой.

Возвращает

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

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

Источник
def unzip3[A1, A2, A3](implicit asTriple: A => (A1, A2, A3)): (CC[A1], CC[A2], CC[A3])

Неявным образом добавлено option2Iterable

Преобразует эту итерируемую коллекцию троек в три коллекции первого, второго и третьего элемента каждой тройки.

val xs = Iterable(
           (1, "one", '1'),
           (2, "two", '2'),
           (3, "three", '3')).unzip3
// xs == (Iterable(1, 2, 3),
//        Iterable(one, two, three),
//        Iterable(1, 2, 3))
Параметры типа
A1

тип первого члена троек элементов

A2

тип второго члена троек элементов

A3

тип третьего члена троек элементов

Параметры значения
asTriple

неявное преобразование, которое утверждает, что тип элемента этой итерируемой коллекции является тройкой.

Возвращает

тройку итерируемых коллекций, содержащих первый, второй и, соответственно, третий член каждой тройки элементов этой итерируемой коллекции.

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

Источник
def view: View[A]

Неявным образом добавлено option2Iterable

Представление элементов этой коллекции.

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

Источник
def withFilter(p: A => Boolean): WithFilter[A, CC]

Неявным образом добавлено option2Iterable

Создаёт нестрогий фильтр этой итерируемой коллекции.

Примечание: разница между c filter p и c withFilter p заключается в том, что первый создаёт новую коллекцию, а второй только ограничивает область действия последующих map, flatMap, foreach, и withFilter операций.

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

Параметры значения
p

предикат для проверки элементов.

Возвращает

объект класса WithFilter, который поддерживает map, flatMap, foreach, и withFilter операции. Все эти операции применяются к тем элементам этой итерируемой коллекции, которые удовлетворяют предикату p.

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

Источник
def zip[B](that: IterableOnce[B]): CC[(A, B)]

Неявным образом добавлено option2Iterable

Возвращает итерируемую коллекцию, сформированную из этой итерируемой коллекции и другой итерируемой коллекции путём объединения соответствующих элементов в пары. Если одна из двух коллекций длиннее другой, оставшиеся элементы игнорируются.

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

тип второй половины возвращаемых пар

Параметры значения
that

Итерируемая коллекция, предоставляющая вторую половину каждой пары результата

Возвращает

новая итерируемая коллекция, содержащая пары, состоящие из соответствующих элементов этой итерируемой коллекции и that. Длина возвращаемой коллекции равна минимальному значению длин этой итерируемой коллекции и that.

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

Источник
def zipAll[A1 >: A, B](that: Iterable[B], thisElem: A1, thatElem: B): CC[(A1, B)]

Неявным образом добавлено option2Iterable

Возвращает итерируемую коллекцию, сформированную из этой итерируемой коллекции и другой итерируемой коллекции путём объединения соответствующих элементов в пары. Если одна из двух коллекций короче другой, используются элементы-заполнители для расширения более короткой коллекции до длины более длинной.

Параметры значения
that

итерируемая коллекция, предоставляющая вторую половину каждой пары результата

thatElem

элемент, используемый для заполнения результата, если that короче, чем эта итерируемая коллекция.

thisElem

элемент, используемый для заполнения результата, если эта итерируемая коллекция короче, чем that.

Возвращает

новая коллекция типа That, содержащая пары, состоящие из соответствующих элементов этой итерируемой коллекции и that. Длина возвращаемой коллекции равна максимальному значению длин этой итерируемой коллекции и that. Если эта итерируемая коллекция короче that, используются значения thisElem для заполнения результата. Если that короче, чем эта итерируемая коллекция, используются значения thatElem для заполнения результата.

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

Источник
def zipWithIndex: CC[(A, Int)]

Неявным образом добавлено option2Iterable

Заархивирует эту итерируемую коллекцию со своими индексами.

Возвращает

Новая итерируемая коллекция, содержащая пары, состоящие из всех элементов этой итерируемой коллекции, сопоставленных с их индексом. Индексы начинаются с 0.

Пример

List("a", "b", "c").zipWithIndex == List(("a", 0), ("b", 1), ("c", 2))

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

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

Spec-Zone.ru

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