ChainingOps

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

Adds chaining methods tap and pipe to every type.

Adds chaining methods tap and pipe to every type.

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.

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.