Applies fa
if this is a Left
or fb
if this is a Right
.
Applies fa
if this is a Left
or fb
if this is a Right
.
the function to apply if this is a Left
the function to apply if this is a Right
the results of applying the function
val result: Either[Exception, Value] = possiblyFailingOperation() log(result.fold( ex => "Operation failed with " + ex, v => "Operation produced value: " + v ))
Returns true
if this is a Left
, false
otherwise.
Returns true
if this is a Right
, false
otherwise.
Joins an Either
through Left
.
Joins an Either
through Left
.
This method requires that the left side of this Either is itself an Either type. That is, this must be some type like:
Either[Either[C, B], B]
(which respects the type parameter bounds, shown below.)
If this instance is a Left[Either[C, B]] then the contained Either[C, B] will be returned, otherwise this value will be returned unmodified.
Left[Either[Int, String], String](Right("flower")).joinLeft // Result: Right("flower") Left[Either[Int, String], String](Left(12)).joinLeft // Result: Left(12) Right[Either[Int, String], String]("daisy").joinLeft // Result: Right("daisy")
This method, and joinRight
, are analogous to Option#flatten
Joins an Either
through Right
.
Joins an Either
through Right
.
This method requires that the right side of this Either is itself an Either type. That is, this must be some type like:
Either[A, Either[A, C]]
(which respects the type parameter bounds, shown below.)
If this instance is a Right[Either[A, C]] then the contained Either[A, C] will be returned, otherwise this value will be returned unmodified.
Right[String, Either[String, Int]](Right(12)).joinRight // Result: Right(12) Right[String, Either[String, Int]](Left("flower")).joinRight // Result: Left("flower") Left[String, Either[String, Int]]("flower").joinRight // Result: Left("flower")
This method, and joinLeft
, are analogous to Option#flatten
Projects this Either
as a Left
.
Projects this Either
as a Left
.
Projects this Either
as a Right
.
Projects this Either
as a Right
.
If this is a Left
, then return the left value in Right
or vice versa.
If this is a Left
, then return the left value in Right
or vice versa.
val l: Either[String, Int] = Left("left") val r: Either[Int, String] = l.swap // Result: Right("left")
The left side of the disjoint union, as opposed to the scala.util.Right side.
1.0, 11/10/2008