스칼라 : 함수 A를 함수 A에 대한 암시 적 매개 변수를 선언하는 함수 B를 통해 매개 변수로 전달합니다.

Sittiphon Chitmongkolthong

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] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

Related 관련 기사

뜨겁다태그

보관