A, B 및 4 개의 클래스 C, D, E, T의 두 가지 메서드가 있다고 가정합니다.
def A(c: C)(implicit t: Request[T]): D { ... }
def B(fn: C => D): E {
implicit val t // I have to declare implicit val for A here
fn(c)
...
}
그런 다음 A를 매개 변수로 사용하여 메서드 B를 호출하고 싶습니다.
B(A)
그러나 B (A) 행에 "여기에서 HTTP 요청을 찾을 수 없음"오류가 있습니다.
메서드 B를 호출 할 때가 아니라 메서드 B에서 실행할 매개 변수처럼 함수 A를 전달하고 싶습니다.
나는 이것을 명시 적으로 선언하려고 시도했다.
def A(c: C, t: Request[T]): D { ... }
def B(fn: C => D): E {
fn(c, t)
...
}
하지만 나는 그것을 암시 적으로 만들고 싶다.
이 작업을 수행하는 방법이 있습니까 ??
B(A)
전화 사이트에 도착하려면 다음과 같이
def B(fn: C => Request[T] => D): E = {
val t = ... // no point making it implicit unless you use it elsewhere
fn(c)(t)
...
}
작동해야합니다 (지금은 확인할 수 없지만 그렇지 않으면 시도해보십시오 B(A _)
).
그러나 당신은 여전히 내부의 함축성을 잃습니다 B
. 이를 방지하려면 현재 Scala에서 지원하지 않는 암시 적 함수 유형 이 필요 합니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다