Akka流解析为Source

时间:2016-05-26 10:22:24

标签: akka-stream

我想解析

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)
      }
    )

似乎过度杀戮将简单的流转换为图形只是为了再次获得简单的流。有更简单的方法吗?

1 个答案:

答案 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的一部分,不应该在库本身之外使用。