<T>타입 이름의 범위 시작제네릭 읽기 점검 기준
제네릭 이름은 임의의 타입을 뜻하는 동시에, 입력과 반환, 필드와 메서드 사이의 타입 관계를 고정하는 표식입니다.
list: &[T]슬라이스 원소 타입-> &T같은 구체 타입 반환T: PartialOrd본문이 비교를 요구타입 매개변수 찾기
<T>, <T, U>처럼 꺾쇠괄호에
선언된 이름이 적용 범위를 시작합니다.
같은 이름의 관계 읽기
같은 T가 여러 위치에 나오면 호출 시점에 모두 같은 구체
타입으로 묶입니다.
필요한 동작 확인
비교처럼 본문이 요구하는 동작은 나중에 트레이트 바운드로 제한합니다.
구체 타입으로 생성
컴파일러는 호출된 타입별로 코드를 단형성화해 런타임 비용을 없앱니다.
선언 위치별로 묶이는 대상
함수
fn largest<T>는 입력 슬라이스와 반환 참조의
타입을 하나로 묶습니다.
구조체
Point<T, U>는 필드별 타입 관계를 인스턴스
전체에 고정합니다.
열거형
Option<T>와 Result<T, E>는
배리언트가 담는 값의 타입을 표현합니다.
메서드
mixup<X2, Y2>처럼 메서드에만 새 타입 관계를
추가할 수 있습니다.