如何阅读此Scala声明?

时间:2017-01-05 11:53:09

标签: scala

在Akka HTTP中,路由的类型为:

type Route = RequestContext ⇒ Future[RouteResult]

如何阅读?我的理解是Route是类,其行为类似于接受RequestContext类型作为参数并返回Future的函数。如果我错了,请纠正我。

1 个答案:

答案 0 :(得分:3)

  

我的理解是Route是一个行为类似于函数的类   它接受RequestContext类型作为参数并返回Future

你几乎就在那里。 Route不是,它是type alias。它没有创建新的数据结构,它允许我们编写更简洁的代码,这些代码具有完全相同的含义,但通常更短。

正如声明的那样,

Route是一个函数,它接受RequestContext并返回Future[RouteResult],仅此而已。好处是你不必写:

def foo(route: RequestContext => Future[RouteResult]): Future[RouteResult]

但可以这样做:

def foo(route: Route): Future[RouteResult]