더북(TheBook)

제네릭 함수

제네릭 함수를 정의하려면 부등호로 둘러싼 제네릭 타입 파라미터를 함수 이름 앞에 붙인다.

IntroGenerics/GenericFunction.kt

package introgenerics
import atomictest.eq

fun <T> identity(arg: T): T = arg

fun main() {
  identity("Yellow") eq "Yellow"
  identity(1) eq 1
  val d: Dog = identity(Dog())
  d.bark() eq "Ruff!"
}

identity()T 타입의 값을 반환하는 제네릭 함수이므로 dDog 타입이다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.