스태틱 디스패치

Static dispatch

컴퓨팅에서 정적 디스패치는 컴파일 중에 완전히 해결되는 다형성의 한 형태입니다.는 메서드 디스패치의 한 형태로 [1]언어 또는 환경이 사용하는 메서드 또는 기능의 구현을 선택하는 방법을 기술합니다.

예를 들어 C++의 템플릿함수 오버로드(연산자 오버로드 포함)와 관련된 다른 언어의 범용 프로그래밍이 있습니다.코드는 특정 버전의 범용 함수를 인스턴스화하고 제공된 정의에 따라 특정 함수 호출을 선택하기 위해 콜 그래프를 통해 특정 데이터 유형을 추론 및 추적하여 단일화된다고 한다.

이는 런타임 정보(vtable 포인터 및 기타 형식의 런타임 유형 정보 등)를 기반으로 하는 동적 디스패치와 대조됩니다.

스태틱 디스패치가 가능한 것은 문제의 메서드가 1개만 실장되어 있다는 보장이 있기 때문입니다.스태틱 디스패치는 일반적으로 오버헤드가 높은 다이내믹 디스패치보다 고속입니다.

녹의 예

녹슬어서.[2]

특성 말하기 {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(); }

「 」를 참조해 주세요.

레퍼런스

  1. ^ Elements of Clojure. Lulu.com. 2019. p. 68. Retrieved 17 July 2022.
  2. ^ "Generic Data Types - The Rust Programming Language". doc.rust-lang.org.