Akka 流解析到 Source
Akka streams parse to Source
我要解析
val flow : FlowOps = Source(1 to 10).map(_+1)
到 Source
但看起来没有简单的方法。我已经完成了这个解决方法
Source.fromGraph(
GraphDSL.create() { builder =>
val flow = Source(1 to 10).map(_+1)
SourceShape(builder.add(flow).out)
}
)
为了再次获得简单流而将简单流转换为图形似乎有些矫枉过正。有没有更简单的方法?
如果我没理解错的话,你想使用Source(1 to 10).map(_ + 1)
作为Source[Int, _]
类型的值,对吧?但是您不需要为此做任何特别的事情,因为 map()
已经 returns 一个适当类型的 Source
。如果你只写
val source = Source(1 to 10).map(_ + 1)
然后 source
将具有类型 Source[Int, NotUsed]
。您可以通过显式放置适当的签名来轻松检查它:
val source: Source[Int, NotUsed] = Source(1 to 10).map(_ + 1)
我什至不确定你为什么使用 FlowOps
类型注释。 FlowOps
,正如它的 scaladoc 所暗示的那样,是 akka-stream 内部的一部分 API,不应在库本身之外使用。
我要解析
val flow : FlowOps = Source(1 to 10).map(_+1)
到 Source
但看起来没有简单的方法。我已经完成了这个解决方法
Source.fromGraph(
GraphDSL.create() { builder =>
val flow = Source(1 to 10).map(_+1)
SourceShape(builder.add(flow).out)
}
)
为了再次获得简单流而将简单流转换为图形似乎有些矫枉过正。有没有更简单的方法?
如果我没理解错的话,你想使用Source(1 to 10).map(_ + 1)
作为Source[Int, _]
类型的值,对吧?但是您不需要为此做任何特别的事情,因为 map()
已经 returns 一个适当类型的 Source
。如果你只写
val source = Source(1 to 10).map(_ + 1)
然后 source
将具有类型 Source[Int, NotUsed]
。您可以通过显式放置适当的签名来轻松检查它:
val source: Source[Int, NotUsed] = Source(1 to 10).map(_ + 1)
我什至不确定你为什么使用 FlowOps
类型注释。 FlowOps
,正如它的 scaladoc 所暗示的那样,是 akka-stream 内部的一部分 API,不应在库本身之外使用。