fn largest<T>(list: &[T]) -> &T타입 관계를 T로 표현제네릭 데이터 타입
타입만 다르고 구조가 같은 코드에 T라는 자리를 두면 한
정의를 여러 타입에 재사용할 수 있습니다. 컴파일러는 실제 호출 타입별
코드로 단형성화해 타입 안전성과 실행 성능을 함께 유지합니다.
함수와 구조체에 제네릭 타입 매개변수를 붙여 중복 없이 타입을 확장하는 방식을 확인합니다.
monomorphize실제 호출 타입 수집largest::<i32>largest::<char>
1
함수를 추출하여 중복 없애기
제네릭은 여러 가지 타입을 나타내는 자리표시자의 위치에 특정 타입을 대입해 같은 구조의 코드 중복을 줄입니다.
예제 9-1: 숫자 리스트에서 가장 큰 수 찾기
2
제네릭 함수 정의
사실은이미 여러 제네릭을 사용해 봤었습니다.
예제 9-4: 이름과 타입 시그니처만 다른 두 함수
3
제네릭 구조체 정의
라이프타임은 제네릭의일종이며, 컴파일러에게 참조자들이 서로 어떤 관계에 있는지를 전달하는 데에사용합니다.
i32