Either

scala.util.Either
See theEither companion class
object Either

Attributes

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

Members list

Keywords
  • no keywords
  • case
  • final
  • implicit

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.

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)

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"

Attributes

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)

Attributes

Source
Either.scala