1
두 개의 유형 매개 변수가있는 함수가있는 경우 단일 유형에 대한 유형 매개 변수를 스칼라로 전달할 수 있습니다. 예를 들어 유형이 A
인 경우에는 B
을 함수에서 컴파일러가 유추 할 수 있습니다. f
.스칼라에서 매개 변수 유형 추론
def foo[A, B](f: A => B): B = {
f(null.asInstanceOf[A])
}
바로 지금 나는 두 가지 해결책을 발견했습니다.
해결 방법 1 (표준 사용량) : foo
에 전화 두 가지 유형을 지정 foo[String, Int](e => 1)
하지만 Int
의 정의는
솔루션이 중복 :
def foo[A, B](useType: A => Unit)(f: A => B): B = {
f(null.asInstanceOf[A])
}
에 함수의 정의를 변경하고 함께 사용
def use[T](t: T) = {}
val res: Int = foo(use[String]) { a => 1 }
작동하지만 매우 유용한 기능을 사용하여 제공하지 않습니다. 컴파일러의 타입.
두 가지 유형의 매개 변수를 취하는 함수에 대해 A
만 입력하면됩니다.
덕분에,이 방향으로 더 깊이보고, 나는 기능 대신 클래스를 사용할 수 있는지 확인합니다. –