Either

scala.util.Either
See theEither companion class
object Either

Attributes

Companion
class
Source
Either.scala
Graph
Supertypes
class Object
trait Matchable
class Any
Self type
Either.type

Members list

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.

Type parameters

A

the type of the Left value

B

the type of the Right value

Value parameters

e

the Either value to project

Attributes

See also
Source
Either.scala
Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Show all
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)

Type parameters

A

the common type of both sides of the Either

Value parameters

x

the Either instance whose left and right types are the same

Attributes

Source
Either.scala
Supertypes
class AnyVal
trait Matchable
class Any

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.)

Attributes

Deprecated
[Since version 2.13.0] Either is now right-biased, calls to `right` should be removed
Source
Either.scala
Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Show all

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"

Type parameters

A

the Left type

B

the Right type

Value parameters

left

the Left value to use if test is false, evaluated lazily

right

the Right value to use if test is true, evaluated lazily

test

the condition to evaluate

Attributes

Returns

Right(right) if test is true, Left(left) otherwise

Source
Either.scala

Implicits

Implicits

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)

Type parameters

A

the common type of both sides of the Either

Value parameters

x

the Either instance whose left and right types are the same

Attributes

Source
Either.scala