2017-01-05 1 views
2

는 경로 유형입니다 :이 스칼라 선언을 읽는 방법? Akka의 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] 
관련 문제