[kotlin] 코틀린에서 제네릭을 사용하여 컬렉션을 다루는 방법은 어떻게 되는가?

코틀린은 제네릭을 활용하여 안전한 컬렉션을 다룰 수 있도록 지원합니다. 제네릭을 사용하면 컬렉션에 포함될 수 있는 객체의 타입을 명시하여 컴파일 타임에 타입 안정성을 보장할 수 있습니다.

제네릭 컬렉션 생성하기

컬렉션을 생성할 때, 제네릭을 사용하여 컬렉션 내부에 포함될 요소의 타입을 명시할 수 있습니다. 예를 들어, List를 생성할 때 String 타입의 요소만 포함되도록 하려면 다음과 같이 작성할 수 있습니다:

val stringList: List<String> = listOf("apple", "banana", "orange")

제네릭 함수와 클래스

제네릭을 사용하여 함수나 클래스를 작성할 수도 있습니다. 제네릭 함수를 선언하려면 함수 이름 뒤에 <> 안에 타입 매개변수를 명시하고, 해당 매개변수를 함수 시그니처에서 사용합니다. 아래는 간단한 제네릭 함수의 예시입니다:

fun <T> printItem(item: T) {
    println("Item: $item")
}

이렇게 선언된 printItem 함수는 어떤 타입의 객체라도 출력할 수 있습니다.

제네릭 타입 변성

코틀린은 제네릭 타입의 변성에 대한 지원을 제공합니다. 제네릭을 선언할 때 inout 키워드를 사용하여 변성을 명시할 수 있습니다. 변성에 대한 자세한 내용은 공식 문서에서 확인할 수 있습니다.

제네릭을 활용하여 컬렉션을 다루고 제네릭 함수 및 클래스를 작성하는 방법에 대해 간단하게 알아보았습니다. 제네릭을 사용하면 타입 안전성을 갖춘 코드를 작성할 수 있으며, 재사용성을 높일 수 있습니다.