ChainingOps

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

Adds chaining methods tap and pipe to every type.

Source
ChainingOps.scala
class AnyVal
trait Matchable
class Any

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 Params
B

the result type of the function f.

Value Params
f

the function to apply to the value.

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 Params
U

the result type of the function f.

Value Params
f

the function to apply to the value.

Returns

the original value self.

Source
ChainingOps.scala