Either

object Either
Companion
class
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
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)

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

Inherited types

The names of the product elements

The names of the product elements

Inherited from
Mirror

The name of the type

The name of the type

Inherited from
Mirror

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"