KOTLIN · 함수
제네릭 함수 (Generic Functions)
타입 파라미터를 사용하여 다양한 타입에 동작하는 범용 함수를 작성합니다. reified로 런타임 타입 정보도 유지합니다.
함수중급genericsreifiedinlinetype-parameter
핵심 설명
타입 파라미터를 사용하여 다양한 타입에 동작하는 범용 함수를 작성합니다. reified로 런타임 타입 정보도 유지합니다.
Kotlin code
// 기본 제네릭 함수
fun <T : Comparable<T>> findMax(list: List<T>): T? =
list.maxOrNull()
// 여러 타입 파라미터
fun <K, V> mapOfPairs(vararg pairs: Pair<K, V>): Map<K, V> =
pairs.toMap()
// reified: 런타임에 타입 정보 유지
inline fun <reified T> List<*>.filterByType(): List<T> =
filterIsInstance<T>()
inline fun <reified T> Any.isType(): Boolean = this is T
fun main() {
println(findMax(listOf(3, 1, 4, 1, 5))) // 5
println(findMax(listOf("b", "a", "c"))) // c
val mixed: List<Any> = listOf(1, "hello", 2.0, "world", 3)
val strings = mixed.filterByType<String>()
println(strings) // [hello, world]
println("Hello".isType<String>()) // true
println(42.isType<String>()) // false
}학습 팁
reified 타입 파라미터는 inline 함수에서만 사용 가능하며, 런타임 타입 검사나 리플렉션에 유용합니다.
주의할 점
reified를 사용하려면 함수가 반드시 inline이어야 합니다. 그렇지 않으면 컴파일 오류가 발생합니다.
자주 묻는 질문
제네릭 함수 (Generic Functions)란 무엇인가요?
타입 파라미터를 사용하여 다양한 타입에 동작하는 범용 함수를 작성합니다. reified 로 런타임 타입 정보도 유지합니다.
제네릭 함수 (Generic Functions) 학습 시 주의할 점은 무엇인가요?
reified 를 사용하려면 함수가 반드시 inline 이어야 합니다. 그렇지 않으면 컴파일 오류가 발생합니다.
Continue Learning
Kotlin 학습을 이어가세요
총 200개의 독립 HTML 학습 문서 중 하나입니다. 각 문서는 고유 URL과 canonical 메타데이터를 가집니다.