2017-01-05 5 views
2

は型である:このScala宣言の読み方は?アッカHTTP、ルートで

type Route = RequestContext ⇒ Future[RouteResult] 

これを読むには?私の理解は、Routeは、パラメータとしてRequestContext型を受け取り、未来を返す関数のように動作するクラスであるということです。私が間違っているなら、私を訂正してください。

+3

キーワード '。したがって、 'Route'は右辺の単なるエイリアスです。右側の 'RequestContext⇒Future [RouteResult]'は、あなたが言うように 'RequestContext'型をパラメータとして受け取り、' Future'を返す関数です。 – jrudolph

答えて

3

私の理解では、ルートをパラメータとしてRequestContextのタイプを受け入れ、あなたはほとんどそこにいる未来の

を返す関数 のように振る舞うクラスであるということです。 Routeクラスではありません。type aliasです。それは新しいデータ構造を作成するものではなく、より簡潔なコードを書くことができます。

Routeは、宣言したように、RequestContextを受け取り、Future[RouteResult]、それ以上は何も返しません。

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

しかし行うことができます:逆さまあなたが書く必要がないということであるタイプの別名を定義しtype`が

def foo(route: Route): Future[RouteResult] 
関連する問題