«type-inference» 태그된 질문

유형 유추는 유형 시스템에서 정의한 규칙을 사용하여 프로그램의 유형을 자동으로 추론하는 프로세스입니다.

6
Java가 왜 수퍼 타입을 유추 할 수 없습니까?
우리는 모두 Long extends를 알고 Number있습니다. 왜 이것이 컴파일되지 않습니까? 그리고 with프로그램이 수동 캐스트없이 컴파일되도록 메소드를 정의하는 방법 은 무엇입니까? import java.util.function.Function; public class Builder<T> { static public interface MyInterface { Number getNumber(); Long getLong(); } public <F extends Function<T, R>, R> Builder<T> with(F getter, R returnValue) { return null;//TODO …

2
`std :: mem :: drop`이 상위 특성 트레이드의 클로저 | _ | ()와 정확히 동일하지 않은 이유는 무엇입니까?
구현은 std::mem::drop다음과 같습니다. pub fn drop<T>(_x: T) { } 따라서, 폐쇄 |_| ()( 구체적 으로 화장실 폐쇄 라고도 함 )가 drop양방향으로 잠재적으로 1 : 1로 대체 될 것으로 기대합니다 . 그러나 아래 코드 drop는 화장실 변수가 변하는 반면 함수의 매개 변수에 더 높은 순위의 특성과 호환되지 않음을 보여줍니다 . fn …

1
유형 매개 변수가 메소드 매개 변수보다 더 강한 이유
왜 public <R, F extends Function<T, R>> Builder<T> withX(F getter, R returnValue) {...} 더 엄격한 public <R> Builder<T> with(Function<T, R> getter, R returnValue) {...} 이것은 컴파일시 람다 리턴 유형이 점검되지 않는 이유 에 대한 후속 조치 입니다. 나는 withX()같은 방법을 사용하여 발견했다. .withX(MyInterface::getLength, "I am not a Long") 원하는 컴파일 …

1
패턴 매칭에서 메소드의 타입 추론과 클래스 타입 파라미터의 차이점
유형 매개 변수가 둘러싸는 클래스가 아닌 둘러싸는 메서드에서 올 때 패턴 일치가 다르게 작동하는 이유는 무엇입니까? 예를 들어 trait Base[T] case class Derived(v: Int) extends Base[Int] class Test[A] { def method(arg: Base[A]) = { arg match { case Derived(_) => 42 } } } 오류를 준다 constructor cannot be instantiated …
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.