Either

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

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

@deprecated("Either is now right-biased, calls to `right` should be removed", "2.13.0")
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