ChainingOps

scala.util.ChainingOps
final class ChainingOps[A](self: A) extends AnyVal

Adds chaining methods tap and pipe to every type.

Type parameters

A

the type of the wrapped value

Value parameters

self

the value to enrich with chaining operations

Attributes

Source
ChainingOps.scala
Graph
Supertypes
class AnyVal
trait Matchable
class Any

Members list

Value members

Concrete methods

def pipe[B](f: A => B): B

Converts the value by applying the function f.

Converts the value by applying the function f.

 scala> import scala.util.chaining._

 scala> val times6 = (_: Int) * 6
 times6: Int => Int = $$Lambda$2023/975629453@17143b3b

 scala> val i = (1 - 2 - 3).pipe(times6).pipe(scala.math.abs)
 i: Int = 24

Note: (1 - 2 - 3).pipe(times6) may have a small amount of overhead at runtime compared to the equivalent { val temp = 1 - 2 - 3; times6(temp) }.

Type parameters

B

the result type of the function f.

Value parameters

f

the function to apply to the value.

Attributes

Returns

a new value resulting from applying the given function f to this value.

Source
ChainingOps.scala
def tap[U](f: A => U): A

Applies f to the value for its side effects, and returns the original value.

Applies f to the value for its side effects, and returns the original value.

 scala> import scala.util.chaining._

 scala> val xs = List(1, 2, 3).tap(ys => println("debug " + ys.toString))
 debug List(1, 2, 3)
 xs: List[Int] = List(1, 2, 3)

Type parameters

U

the result type of the function f.

Value parameters

f

the function to apply to the value.

Attributes

Returns

the original value self.

Source
ChainingOps.scala