Docs: add code examples for drop and dropWhile Operators (#28613)

This commit is contained in:
Razvan Vacaru 2020-02-14 17:21:39 +01:00 committed by GitHub
parent cacc20bd8a
commit 56c13dcde5
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 83 additions and 0 deletions

View file

@ -16,6 +16,16 @@ Drop `n` elements and then pass any subsequent element downstream.
Drop `n` elements and then pass any subsequent element downstream.
## Example
Given a `Source` of numbers we can drop the first 3 elements with the `drop` operator:
Scala
: @@snip [Drop.scala](/akka-docs/src/test/scala/docs/stream/operators/sourceorflow/Drop.scala) { #drop }
Java
: @@snip [SourceOrFlow.java](/akka-docs/src/test/java/jdocs/stream/operators/SourceOrFlow.java) { #drop }
## Reactive Streams semantics
@@@div { .callout }

View file

@ -16,6 +16,17 @@ Drop elements as long as a predicate function return true for the element
Drop elements as long as a predicate function return true for the element
## Example
Given a `Source` of ordered numbers we can drop all the negative ones with the `dropWhile` operator.
Mind that after the first non negative number is encountered, all the consecutive elements will be emitted despite the predicate provided.
Scala
: @@snip [Drop.scala](/akka-docs/src/test/scala/docs/stream/operators/sourceorflow/Drop.scala) { #dropWhile }
Java
: @@snip [SourceOrFlow.java](/akka-docs/src/test/java/jdocs/stream/operators/SourceOrFlow.java) { #dropWhile }
## Reactive Streams semantics
@@@div { .callout }

View file

@ -386,4 +386,28 @@ class SourceOrFlow {
// incididunt
// #filterNot
}
void dropExample() {
// #drop
Source<Integer, NotUsed> fiveIntegers = Source.from(Arrays.asList(1, 2, 3, 4, 5));
Source<Integer, NotUsed> droppedThreeInts = fiveIntegers.drop(3);
droppedThreeInts.runWith(Sink.foreach(System.out::print), system);
// 4
// 5
// #drop
}
void dropWhileExample() {
// #dropWhile
Source<Integer, NotUsed> droppedWhileNegative =
Source.from(Arrays.asList(-3, -2, -1, 0, 1, 2, 3, -1)).dropWhile(integer -> integer < 0);
droppedWhileNegative.runWith(Sink.foreach(System.out::print), system);
// 1
// 2
// 3
// -1
// #dropWhile
}
}

View file

@ -0,0 +1,38 @@
/*
* Copyright (C) 2019-2020 Lightbend Inc. <https://www.lightbend.com>
*/
package docs.stream.operators.sourceorflow
import akka.NotUsed
import akka.actor.ActorSystem
import akka.stream.scaladsl.Source
object Drop {
implicit val system: ActorSystem = ActorSystem()
def drop(): Unit = {
// #drop
val fiveInts: Source[Int, NotUsed] = Source(1 to 5)
val droppedThreeInts: Source[Int, NotUsed] = fiveInts.drop(3)
droppedThreeInts.runForeach(println)
// 4
// 5
// #drop
}
def dropWhile(): Unit = {
// #dropWhile
val droppedWhileNegative = Source(-3 to 3).dropWhile(_ < 0)
droppedWhileNegative.runForeach(println)
// 0
// 1
// 2
// 3
// #dropWhile
}
}