3

受信している着信文字列を複数の文字列に分割する解決策を考え出そうとしています。私が調査したところ、以前のバージョンの Akka-Streams には、Transformerこの種の変換を行うために拡張できるクラスがあったようです。

私が使用しているバージョン (RC2) にはStages がありますが、分割パターンを実装する方法がよくわかりません。

Source.actorPublisher[String](MyActor.props).
.XXXXX(_.split("\n"))
.map(...)
.to(Sink(...))

XXXXXa を入力しStringてシーケンスを返し、Stringそれぞれをフローの残りの部分に出力できるコンポーネントを探しています。

4

2 に答える 2

5

mapConcatおそらくあなたが探しているものである@jrudolphに同意します。このメソッドの動作を示す簡単な例:

  val strings = List(
  """hello
     world
     test
     this""",
     """foo
     bar
     baz
     """

  )

  implicit val system = ActorSystem("test")
  implicit val mater = ActorFlowMaterializer()
  Source(strings).
    mapConcat(_.split("\n").map(_.trim).toList).
    runForeach(println)

このコードを実行すると、次のように表示されます。

hello
world
test
this
foo     
bar
baz
于 2015-05-20T11:20:39.263 に答える