스태틱 디스패치
Static dispatch| 다형성 |
|---|
| 애드혹 다형 |
| 파라메트릭 다형 |
| 서브타이핑 |
컴퓨팅에서 정적 디스패치는 컴파일 중에 완전히 해결되는 다형성의 한 형태입니다.이는 메서드 디스패치의 한 형태로 [1]언어 또는 환경이 사용하는 메서드 또는 기능의 구현을 선택하는 방법을 기술합니다.
예를 들어 C++의 템플릿과 함수 오버로드(연산자 오버로드 포함)와 관련된 다른 언어의 범용 프로그래밍이 있습니다.코드는 특정 버전의 범용 함수를 인스턴스화하고 제공된 정의에 따라 특정 함수 호출을 선택하기 위해 콜 그래프를 통해 특정 데이터 유형을 추론 및 추적하여 단일화된다고 한다.
이는 런타임 정보(vtable 포인터 및 기타 형식의 런타임 유형 정보 등)를 기반으로 하는 동적 디스패치와 대조됩니다.
스태틱 디스패치가 가능한 것은 문제의 메서드가 1개만 실장되어 있다는 보장이 있기 때문입니다.스태틱 디스패치는 일반적으로 오버헤드가 높은 다이내믹 디스패치보다 고속입니다.
녹의 예
특성 말하기 {fn speak(&self); } struct Cat; incont Speak for Cat { fn speak(&self) { println!("야옹!"), } fn talk <T: Speak>(t: T) { pet.speak(); } fn main() {let = Talk;(t; }Rust는 다음과 같이 컴파일할 때 이를 일원화합니다.
fn talk_cat(펫: Cat) {pet.speak(); }「 」를 참조해 주세요.
레퍼런스
- ^ Elements of Clojure. Lulu.com. 2019. p. 68. Retrieved 17 July 2022.
- ^ "Generic Data Types - The Rust Programming Language". doc.rust-lang.org.