Either

object Either
Companion:
class
Source:
Either.scala
trait Sum
trait Mirror
class Object
trait Matchable
class Any
Either.type

Type members

Classlikes

final case class LeftProjection[+A, +B](e: Either[A, B])

Projects an Either into a Left.

Projects an Either into a Left.

See also:
Source:
Either.scala
final implicit class MergeableEither[A](x: Either[A, A]) extends AnyVal

Allows use of a merge method to extract values from Either instances regardless of whether they are Left or Right.

Allows use of a merge method to extract values from Either instances regardless of whether they are Left or 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)
Source:
Either.scala

Deprecated classlikes

final case class RightProjection[+A, +B](e: Either[A, B])

Projects an Either into a Right.

Projects an Either into a Right.

Because Either is already right-biased, this class is not normally needed. (It is retained in the library for now for easy cross-compilation between Scala 2.11 and 2.12.)

Deprecated
Source:
Either.scala

Inherited types

The names of the product elements

The names of the product elements

Inherited from:
Mirror
Source:
Mirror.scala

The name of the type

The name of the type

Inherited from:
Mirror
Source:
Mirror.scala

Value members

Concrete methods

def cond[A, B](test: Boolean, right: => B, left: => A): Either[A, B]

If the condition is satisfied, return the given B in Right, otherwise, return the given A in Left.

If the condition is satisfied, return the given B in Right, otherwise, return the given A in 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"
Source:
Either.scala

Implicits

Implicits

final implicit def MergeableEither[A](x: Either[A, A]): MergeableEither[A]

Allows use of a merge method to extract values from Either instances regardless of whether they are Left or Right.

Allows use of a merge method to extract values from Either instances regardless of whether they are Left or 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)
Source:
Either.scala