Spec-Zone.ru › Scala 3.2

Объект None.None

Исходный код

case object None extends Option[Nothing]

Этот объект case представляет несуществующие значения.

Суперадресаты
Тракт Singleton
Тракт Product
Тракт Mirror
Класс Option[Nothing]
Тракт Serializable
Тракт Product
Тракт Equals
Тракт IterableOnce[Nothing]
Класс Object
Тракт Matchable
Класс Any
Тип "self"
None.type

Наследуемые классы

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

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

Наследуется от Option

Наследуемые типы

Исходный код
Тип MirroredElemLabels = EmptyTuple

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

Наследуется от Singleton

Исходный код
Тип MirroredElemTypes = EmptyTuple

Наследуется от Singleton

Исходный код
Тип MirroredLabel <: String

Имя типа

Наследуется от Mirror

Исходный код
Тип MirroredMonoType = Singleton.this.type

Отражённый тип *-типа

Наследуется от Singleton

Исходный код
Тип MirroredType = Singleton.this.type

Наследуется от Singleton

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

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

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

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

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

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

Примечание

Опция должна быть непустой.

Наследуемые методы

Исходный код
final def collect[B](pf: PartialFunction[Nothing, 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](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: Nothing => Boolean): Boolean

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

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

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

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

Наследуется от Option

Исходный код
final def filter(p: Nothing => 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: Nothing => 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: Nothing => Option[B]): Option[B]

Возвращает результат применения f к значению этой опции 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: Nothing <:< 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

Source
final def fold[B](ifEmpty: => B)(f: Nothing => 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

Source
final def forall(p: Nothing => Boolean): Boolean

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

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

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

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

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

Source
final def foreach[U](f: Nothing => U): Unit

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

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

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

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

См. также

map

flatMap

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

Source
def fromProduct(p: Product): MirroredMonoType

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

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

Source
final def getOrElse[B](default: => B): B

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

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

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

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

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

Source
final def isDefined: Boolean

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

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

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

Source
final def isEmpty: Boolean

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

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

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

Source
def iterator: Iterator[A]

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

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

Source
final override def knownSize: Int

Возвращает

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

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

Source
final def map[B](f: Nothing => 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

Source
final def nonEmpty: Boolean

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

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

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

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

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

Source
final def orElse[B](alternative: => Option[B]): Option[B]

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

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

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

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

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

Source
final def orNull[A1](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

Source
def productElementNames: Iterator[String]

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

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

Source
def productIterator: Iterator[Any]

Итератор по всем элементам этого продукта.

Возвращает

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

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

Source
def stepper[S <: Stepper[_]](implicit shape: StepperShape[Nothing, 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

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

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

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

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

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

См. также

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

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

См. также

toLeft

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

Источник
final def unzip[A1, A2](implicit asPair: Nothing <:< (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.

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

Источник
final def unzip3[A1, A2, A3](implicit asTriple: Nothing <:< (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.

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

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

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

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

Источник
final def zip[A1, 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")
Унаследовано от 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/None$.html

Spec-Zone.ru

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