Spec-Zone.ru › Scala 3.1

Объект scala.util.Either

Класс-компаньон • Исходный код

объект Either

Супертипы
трайт Sum
трайт Mirror
класс Object
трайт Matchable
класс Any
Тип self
Either.type

Классы

Исходный код
final case class LeftProjection[+A, +B](e: Either[A, B])

Проектирует Either в Left.

См. также

scala.util.Either#left

Исходный код
final implicit class MergeableEither[A](x: Either[A, A]) extends AnyVal

Позволяет использовать метод merge для извлечения значений из экземпляров Either независимо от того, являются ли они Left или Right.

val l = Left(List(1)): Either[List[Int], Vector[Int]]
val r = Right(Vector(1)): Either[List[Int], Vector[Int]]
l.merge: Seq[Int] // List(1)
r.merge: Seq[Int] // Vector(1)

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

Исходный код
тип MirroredElemLabels <: Tuple

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

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

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

Имя типа

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

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

Исходный код
def cond[A, B](test: Boolean, right: => B, left: => A): Either[A, B]

Если условие выполняется, вернуть заданное B в Right, в противном случае вернуть заданное A в Left.

val userInput: String = readLine()
Either.cond(
  userInput.forall(_.isDigit) && userInput.size == 10,
  PhoneNumber(userInput),
  s"The input ($userInput) does not look like a phone number"

Неявные

Исходный код
final implicit def MergeableEither[A](x: Either[A, A]): MergeableEither[A]

Позволяет использовать метод merge для извлечения значений из экземпляров Either независимо от того, являются ли они Left или Right.

val l = Left(List(1)): Either[List[Int], Vector[Int]]
val r = Right(Vector(1)): Either[List[Int], Vector[Int]]
l.merge: Seq[Int] // List(1)
r.merge: Seq[Int] // Vector(1)

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

Spec-Zone.ru

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