我想解析
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)
}
)
似乎过度杀戮将简单的流转换为图形只是为了再次获得简单的流。有更简单的方法吗?
答案 0 :(得分:2)
如果我理解正确,您希望将Source(1 to 10).map(_ + 1)
用作Source[Int, _]
类型的值,对吧?但是,您不需要为此做任何特别的事情,因为map()
已经返回了相应类型的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
类型注释。正如其scaladoc所暗示的那样,FlowOps
是akka-stream内部API的一部分,不应该在库本身之外使用。