September 2018
Intermediate to advanced
398 pages
9h 43m
English
The Either type is an ADT that represents a value of either a Left type or a Right type. A simplified definition of Either would be the following:
sealed trait Either[A, B]case class Left[A, B](value: A) extends Either[A, B]case class Right[A, B](value: B) extends Either[A, B]
When you instantiate a Right type, you need to provide a value of a B type, and when you instantiate a Left type, you need to provide a value of an A type. Therefore, Either[A, B] can either hold a value of type A or a value of type B.
The following code shows an example of such a usage that you can type in a new Scala worksheet:
def divide(x: Double, y: Double): Either[String, Double] = if (y == 0) Left(s"$x cannot be divided by zero") else Right(x / y) ...
Read now
Unlock full access