On this page
Class Left.Left
The left side of the disjoint union, as opposed to the scala.util.Right side.
Supertypes |
---|
Concrete methods
Source
Returns true
if this is a Left
, false
otherwise.
Left("tulip").isLeft // true
Right("venus fly-trap").isLeft // false
Source
Returns true
if this is a Right
, false
otherwise.
Left("tulip").isRight // false
Right("venus fly-trap").isRight // true
Source
Upcasts this Left[A, B]
to Either[A, B1]
Left(1) // Either[Int, Nothing]
Left(1).withRight[String] // Either[Int, String]
Inherited methods
Source
Returns true
if this is a Right
and its value is equal to elem
(as determined by ==
), returns false
otherwise.
// Returns true because value of Right is "something" which equals "something".
Right("something") contains "something"
// Returns false because value of Right is "something" which does not equal "anything".
Right("something") contains "anything"
// Returns false because it's not a Right value.
Left("something") contains "something"
Value parameters |
|
---|---|
Returns |
|
Inherited from | Either |
Source
Returns false
if Left
or returns the result of the application of the given predicate to the Right
value.
Right(12).exists(_ > 10) // true
Right(7).exists(_ > 10) // false
Left(12).exists(_ => true) // false
Inherited from | Either |
---|
Source
Returns Right
with the existing value of Right
if this is a Right
and the given predicate p
holds for the right value, or Left(zero)
if this is a Right
and the given predicate p
does not hold for the right value, or Left
with the existing value of Left
if this is a Left
.
Right(12).filterOrElse(_ > 10, -1) // Right(12)
Right(7).filterOrElse(_ > 10, -1) // Left(-1)
Left(7).filterOrElse(_ => false, -1) // Left(7)
Inherited from | Either |
---|
Source
Binds the given function across Right
.
Value parameters |
|
---|---|
Inherited from | Either |
Source
Returns the right value if this is right or this value if this is left
Example | Equivalent to |
---|---|
Inherited from | Either |
Source
def fold[C](fa: A => C, fb: B => C): C
Applies fa
if this is a Left
or fb
if this is a Right
.
Value parameters |
|
---|---|
Returns | the results of applying the function |
Example |
|
Inherited from | Either |
Source
Returns true
if Left
or returns the result of the application of the given predicate to the Right
value.
Right(12).forall(_ > 10) // true
Right(7).forall(_ > 10) // false
Left(12).forall(_ => false) // true
Inherited from | Either |
---|
Source
Executes the given side-effecting function if this is a Right
.
Right(12).foreach(println) // prints "12"
Left(12).foreach(println) // doesn't print
Value parameters |
|
---|---|
Inherited from | Either |
Source
def getOrElse[B1 >: B](or: => B1): B1
Returns the value from this Right
or the given argument if this is a Left
.
Right(12).getOrElse(17) // 12
Left(12).getOrElse(17) // 17
Inherited from | Either |
---|
Source
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
.
Inherited from | Either |
---|
Source
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.
Example | This method, and |
---|---|
Inherited from | Either |
Source
def left: LeftProjection[A, B]
Projects this Either
as a Left
.
This allows for-comprehensions over the left side of Either
instances, reversing Either
's usual right-bias.
For example
for (s <- Left("flower").left) yield s.length // Left(6)
Continuing the analogy with scala.Option, a LeftProjection
declares that Left
should be analogous to Some
in some code.
// using Option
def interactWithDB(x: Query): Option[Result] =
try Some(getResultFromDatabase(x))
catch {
case _: SQLException => None
}
// this will only be executed if interactWithDB returns a Some
val report = for (result <- interactWithDB(someQuery)) yield generateReport(result)
report match {
case Some(r) => send(r)
case None => log("report not generated, not sure why...")
}
// using Either
def interactWithDB(x: Query): Either[Exception, Result] =
try Right(getResultFromDatabase(x))
catch {
case e: SQLException => Left(e)
}
// run a report only if interactWithDB returns a Right
val report = for (result <- interactWithDB(someQuery)) yield generateReport(result)
report match {
case Right(r) => send(r)
case Left(e) => log(s"report not generated, reason was $e")
}
// only report errors
for (e <- interactWithDB(someQuery).left) log(s"query failed, reason was $e")
Inherited from | Either |
---|
Source
The given function is applied if this is a Right
.
Right(12).map(x => "flower") // Result: Right("flower")
Left(12).map(x => "flower") // Result: Left(12)
Inherited from | Either |
---|
Source
Returns this Right
or the given argument if this is a Left
.
Right(1) orElse Left(2) // Right(1)
Left(1) orElse Left(2) // Left(2)
Left(1) orElse Left(2) orElse Right(3) // Right(3)
Inherited from | Either |
---|
Source
An iterator over the names of all the elements of this product.
Inherited from | Product |
---|
Source
An iterator over all the elements of this product.
Returns | in the default implementation, an |
---|---|
Inherited from | Product |
Source
If this is a Left
, then return the left value in Right
or vice versa.
Example |
|
---|---|
Inherited from | Either |
Source
Returns a Some
containing the Right
value if it exists or a None
if this is a Left
.
Right(12).toOption // Some(12)
Left(12).toOption // None
Inherited from | Either |
---|
Source
Returns a Seq
containing the Right
value if it exists or an empty Seq
if this is a Left
.
Right(12).toSeq // Seq(12)
Left(12).toSeq // Seq()
Inherited from | Either |
---|
Source
Inherited from | Either |
---|
© 2002-2022 EPFL, with contributions from Lightbend.
Licensed under the Apache License, Version 2.0.
https://scala-lang.org/api/3.2.0/scala/util/Left.html