Skip to content

Latest commit

 

History

History
23 lines (14 loc) · 1.56 KB

아이템 22_일반적인_알고리즘을_구현할_때_제네릭을_사용하라.md

File metadata and controls

23 lines (14 loc) · 1.56 KB

아이템 22: 일반적인 알고리즘을 구현할 때 제네릭을 사용하라

  • 아규먼트로 함수에 값을 전달할 수 있는 것처럼 , 타입 아규먼트를 사용하면 함수에 타입을 전달할 수 있습니다. 타입 아규먼트를 사용하는 함수(즉, 타입 파 라미터를 갖는 함수)를 제네릭 함수(generic function)라고 부릅니다.
  • 타입 파라미터는 컴파일러에 타입과 관련된 정보를 제공하여 컴파일러가 타입 을 조금이라도 더 정확하게 추측할 수 있게 해 줍니다.
  • 제네릭은 기본적으로 List<String> 또는 Set<User>처럼 구체적인 타입으로 컬 렉션을 만들 수 있게 클래스와 인터페이스에 도입된 기능입니다.

제네릭 제한

  • 타입 파라미터의 중요한 기능 중 하나는 구체적인 타입의 서브타입만 사용하게 타입을 제한하는 것입니다.
  • 타입에 제한이 걸리므로, 내부에서 해당 타입이 제공하는 메서드를 사용할 수 있습니다.
  • 많이 사용하는 제한으로는 Any가 있습니다. 이는 nullable이 아닌 타입을 나타냅니다.

정리

  • 코틀린 자료형 시스템에서 타입 파라미터는 굉장히 중요한 부분입니다. 일반적으로 이를 사용해서 type-safe 제네릭 알고리즘과 제네릭 객체를 구현합니다.
  • 타입 파라미터는 구체 자료형 (concretetype)의 서브타입을 제한할 수 있습니다. 이렇게 하면 특정 자료형이 제공하는 메서드를 안전하게 사용할 수 있습니다.