- 아규먼트로 함수에 값을 전달할 수 있는 것처럼 , 타입 아규먼트를 사용하면 함수에 타입을 전달할 수 있습니다. 타입 아규먼트를 사용하는 함수(즉, 타입 파 라미터를 갖는 함수)를 제네릭 함수(generic function)라고 부릅니다.
- 타입 파라미터는 컴파일러에 타입과 관련된 정보를 제공하여 컴파일러가 타입 을 조금이라도 더 정확하게 추측할 수 있게 해 줍니다.
- 제네릭은 기본적으로 List<String> 또는 Set<User>처럼 구체적인 타입으로 컬 렉션을 만들 수 있게 클래스와 인터페이스에 도입된 기능입니다.
- 타입 파라미터의 중요한 기능 중 하나는 구체적인 타입의 서브타입만 사용하게 타입을 제한하는 것입니다.
- 타입에 제한이 걸리므로, 내부에서 해당 타입이 제공하는 메서드를 사용할 수 있습니다.
- 많이 사용하는 제한으로는 Any가 있습니다. 이는 nullable이 아닌 타입을 나타냅니다.
- 코틀린 자료형 시스템에서 타입 파라미터는 굉장히 중요한 부분입니다. 일반적으로 이를 사용해서 type-safe 제네릭 알고리즘과 제네릭 객체를 구현합니다.
- 타입 파라미터는 구체 자료형 (concretetype)의 서브타입을 제한할 수 있습니다. 이렇게 하면 특정 자료형이 제공하는 메서드를 안전하게 사용할 수 있습니다.