Spec-Zone.ru › Scala 3.2

Класс Some.Some

Исходный код

final case class Some[+A](value: A) extends Option[A]

Класс Some[A] представляет существующие значения типа A.

Надтипы
класс Option[A]
тракт Serializable
тракт Product
тракт Equals
тракт IterableOnce[A]
класс Object
тракт Matchable
класс Any

Унаследованные классы

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

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

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

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

Исходный код
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}
Унаследовано от Option

Исходный код
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"
Унаследовано от Option

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

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

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

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

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

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

Исходный код
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

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

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

Исходный код
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

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

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

Исходный код
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

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

Исходный код
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
Унаследовано от Option

Исходный код
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

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

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

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

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

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

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

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

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

Исходный код
final def foreach[U](f: A => U): Unit

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

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

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

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

См. также

map

flatMap

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

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

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

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

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

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

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

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

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

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

option match {
 case Some(_) => true
 case None    => false
}
Унаследовано от Option

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

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

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

option match {
 case Some(_) => false
 case None    => true
}
Унаследовано от Option

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

Возвращает итератор, возвращающий значение scala.Option, если оно непусто, или пустой итератор, если опция пустая.

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

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

Возвращает

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

Классы определения Option -> IterableOnce
Унаследовано от Option

Источник
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.

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

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

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

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

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

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

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

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

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

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

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

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

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

Источник
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)
Унаследовано от Option

Источник
def productElementNames: Iterator[String]

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

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

Источник
def productIterator: Iterator[Any]

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

Возвращает

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

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

Источник
def stepper[S <: Stepper[_]](implicit shape: StepperShape[A, S]): S

Возвращает 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

Источник
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

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

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

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

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

option match {
 case Some(x) => List(x)
 case None    => Nil
}
Унаследовано от Option

Источник
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

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

Источник
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 — пара.

Возвращаемое значение

пара Options, содержащая соответственно первую и вторую половину пары элементов этого 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 — тройка.

Возвращаемое значение

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

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

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

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

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

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

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

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

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

Options, который будет участвовать в объединении

Пример
// 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")
Унаследовано от Option

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

Spec-Zone.ru

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