"++"를 구현하는 일반 컨테이너를 사용하는 일반 함수를 작성하려고하지만 구문을 올바르게 알 수없는 것 같습니다.유형 경계가있는 일반 함수
def pagedRequest[A, C[_] <: Iterable](url: String, accumulator: C[A])(parser: (WSResponse) => C[A]): Future[Either[Result, C[A]]] = {
WS.url(url).get().flatMap { response =>
response.status match {
case OK =>
val data = accumulator ++ parser(response)
(response.json \ "paging" \ "next").asOpt[String] match {
case None => Future.successful(Right(data))
case Some(next) => pagedRequest(next, data)(parser)
}
case _ =>
Future.successful(Left(ProxiedResult(response)))
}
}
}
"데이터"의 유형은 C [A] 대신 반복 가능 [A]로 유지됩니다.