Spec-Zone.ru › Scala 3.1

Класс scala.util.ChainingOps

Исходный код

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

Добавляет методы цепочки tap и pipe к каждому типу.

Суперадресаты
класс AnyVal
трайт Matchable
класс Any

Конкретные методы

Исходник
def pipe[B](f: A => B): B

Преобразует значение, применяя функцию 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

Примечание: (1 - 2 - 3).pipe(times6) может иметь небольшую задержку во время выполнения по сравнению с эквивалентом { val temp = 1 - 2 - 3; times6(temp) }.

Параметры типа
B

тип результата функции f.

Параметры значения
f

функция, применяемая к значению.

Возвращаемое значение

новое значение, полученное в результате применения данной функции f к этому значению.

Исходник
def tap[U](f: A => U): A

Применяет f к значению для побочных эффектов и возвращает исходное значение.

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)
Параметры типа
U

тип результата функции f.

Параметры значения
f

функция, применяемая к значению.

Возвращаемое значение

исходное значение self.

© 2002-2022 EPFL, with contributions from Lightbend.
Licensed under the Apache License, Version 2.0.
https://scala-lang.org/api/3.1.1/scala/util/ChainingOps.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API