diff --git a/akka-docs/src/main/paradox/stream/operators/Source-or-Flow/scan.md b/akka-docs/src/main/paradox/stream/operators/Source-or-Flow/scan.md index c299057b1d..b017864175 100644 --- a/akka-docs/src/main/paradox/stream/operators/Source-or-Flow/scan.md +++ b/akka-docs/src/main/paradox/stream/operators/Source-or-Flow/scan.md @@ -31,3 +31,10 @@ Note that the `zero` value must be immutable. @@@ +## Examples + +Scala +: @@snip [SourceOrFlow.scala](/akka-docs/src/test/scala/docs/stream/operators/SourceOrFlow.scala) { #scan } + +Java +: @@snip [SourceOrFlow.java](/akka-docs/src/test/java/jdocs/stream/operators/SourceOrFlow.java) { #scan } diff --git a/akka-docs/src/test/java/jdocs/stream/operators/SourceOrFlow.java b/akka-docs/src/test/java/jdocs/stream/operators/SourceOrFlow.java index e8c4a4908d..44382be3be 100644 --- a/akka-docs/src/test/java/jdocs/stream/operators/SourceOrFlow.java +++ b/akka-docs/src/test/java/jdocs/stream/operators/SourceOrFlow.java @@ -172,6 +172,19 @@ class SourceOrFlow { //#conflate } + void scanExample() { + //#scan + Source source = Source.range(1, 5); + source.scan(0, (acc, x) -> acc + x).runForeach(System.out::println, materializer); + // 0 (= 0) + // 1 (= 0 + 1) + // 3 (= 0 + 1 + 2) + // 6 (= 0 + 1 + 2 + 3) + // 10 (= 0 + 1 + 2 + 3 + 4) + // 15 (= 0 + 1 + 2 + 3 + 4 + 5) + //#scan + } + static //#conflateWithSeed-type class Summed { diff --git a/akka-docs/src/test/scala/docs/stream/operators/SourceOrFlow.scala b/akka-docs/src/test/scala/docs/stream/operators/SourceOrFlow.scala index 7ee6a65d80..f1ce3a2024 100644 --- a/akka-docs/src/test/scala/docs/stream/operators/SourceOrFlow.scala +++ b/akka-docs/src/test/scala/docs/stream/operators/SourceOrFlow.scala @@ -52,4 +52,23 @@ object SourceOrFlow { //#conflateWithSeed } + def scanExample(): Unit = { + import akka.actor.ActorSystem + import akka.stream.ActorMaterializer + + implicit val system: ActorSystem = ActorSystem() + implicit val materializer: ActorMaterializer = ActorMaterializer() + + //#scan + val source = Source(1 to 5) + source.scan(0)((acc, x) ⇒ acc + x).runForeach(println) + // 0 (= 0) + // 1 (= 0 + 1) + // 3 (= 0 + 1 + 2) + // 6 (= 0 + 1 + 2 + 3) + // 10 (= 0 + 1 + 2 + 3 + 4) + // 15 (= 0 + 1 + 2 + 3 + 4 + 5) + //#scan + } + }