generic checklist

제네릭 읽기 체크리스트

제네릭 이름은 임의의 타입을 뜻하는 동시에, 입력과 반환, 필드와 메서드 사이의 타입 관계를 고정하는 표식입니다.

name

타입 매개변수 찾기

<T>, <T, U>처럼 꺾쇠괄호에 선언된 이름이 적용 범위를 시작합니다.

relation

같은 이름의 관계 읽기

같은 T가 여러 위치에 나오면 호출 시점에 모두 같은 구체 타입으로 묶입니다.

bound

필요한 동작 확인

비교처럼 본문이 요구하는 동작은 나중에 트레이트 바운드로 제한합니다.

compile

구체 타입으로 생성

컴파일러는 호출된 타입별로 코드를 단형성화해 런타임 비용을 없앱니다.

선언 위치별로 묶이는 대상

함수

fn largest<T>는 입력 슬라이스와 반환 참조의 타입을 하나로 묶습니다.

구조체

Point<T, U>는 필드별 타입 관계를 인스턴스 전체에 고정합니다.

열거형

Option<T>Result<T, E>는 배리언트가 담는 값의 타입을 표현합니다.

메서드

mixup<X2, Y2>처럼 메서드에만 새 타입 관계를 추가할 수 있습니다.