KOTLIN · 함수
함수 참조 (Function References)
:: 연산자로 함수, 생성자, 프로퍼티를 참조합니다. 고차 함수에 기존 함수를 간결하게 전달합니다.
함수중급function-referenceconstructor-referencebound-referenceproperty-reference
핵심 설명
:: 연산자로 함수, 생성자, 프로퍼티를 참조합니다. 고차 함수에 기존 함수를 간결하게 전달합니다.
Kotlin code
fun isEven(n: Int) = n % 2 == 0
data class User(val name: String, val age: Int) {
fun greet() = "안녕하세요, ${name}입니다"
}
fun main() {
val numbers = listOf(1, 2, 3, 4, 5, 6)
// 함수 참조
println(numbers.filter(::isEven)) // [2, 4, 6]
// 생성자 참조
val names = listOf("김철수", "이영희")
val users = names.map { User(it, 25) }
// 멤버 함수 참조
val greetings = users.map(User::greet)
println(greetings)
// 바운드 참조 (특정 인스턴스에 바인딩)
val user = User("박지성", 30)
val greetFn: () -> String = user::greet
println(greetFn())
// 프로퍼티 참조
val ages = users.map(User::age)
println(ages)
}학습 팁
User::name처럼 프로퍼티 참조를 사용하면 { it.name }보다 간결하고 의도가 명확합니다.
주의할 점
오버로딩된 함수를 참조할 때 타입을 명시해야 합니다. val ref: (Int) -> Boolean = ::isEven처럼 타입을 지정하세요.
자주 묻는 질문
함수 참조 (Function References)란 무엇인가요?
:: 연산자로 함수, 생성자, 프로퍼티를 참조합니다. 고차 함수에 기존 함수를 간결하게 전달합니다.
함수 참조 (Function References) 학습 시 주의할 점은 무엇인가요?
오버로딩된 함수를 참조할 때 타입을 명시해야 합니다. val ref: (Int) -> Boolean = ::isEven 처럼 타입을 지정하세요.
Continue Learning
Kotlin 학습을 이어가세요
총 200개의 독립 HTML 학습 문서 중 하나입니다. 각 문서는 고유 URL과 canonical 메타데이터를 가집니다.