[Kotlin] 고차함수, 람다함수 설명 & 예제
- Language/Kotlin
- 2021. 2. 3.
728x90
고차함수
- 고차함수란 함수를 클래스에서 만들어낸 '인스턴스'처럼 취급 하는 방법
- 함수를 파라미터로 넘겨줄 수도 있고, '결과값'으로 반환 받을 수도 있는 방법 입니다.
코틀린에서는 모든 함수를 고차함수로 사용 가능
fun main() {
//::일반함수를 고차함수로 변경해주는 연산자
b(::a)
}
fun a(str: String) {
println("$str 함수 a")
}
//return 없는 경우 Unit
fun b(function: (String) -> Unit) {
function("b가 호출함")
}
람다 함수
- 일반 함수와 달리 그 자체가 고차함수 별도의 연산자 없이도 변수에 담을 수 있다.
fun main() {
//람다 함수
//람다 함수는 그 자체가 고차함수이기 때문에 연산자 불 필요
val c: (String) -> Unit = { str -> println("$str 람다함수") }
b(c)
}
//return 없는 경우 Unit
fun b(function: (String) -> Unit) {
function("b가 호출함")
}
람다 : 축약형
fun main() {
val c = { str:String -> println("$str 람다함수") }
b(c)
}
고차함수와 람다함수를 사용하면 함수를 일종의 변수로 사용할 수 있다는 편의성이 있다. 이외에도 컬렌션의 조작이나 스코프 함수의 사용에도 도움이 된다.
728x90
'Language > Kotlin' 카테고리의 다른 글
[Kotlin] 싱글턴 패턴 & Object 설명 & 예제 (0) | 2021.02.04 |
---|---|
[Kotlin] 람다 함수 보충 설명, 스코프 함수 설명 & 예제 (0) | 2021.02.03 |
[Kotlin] 스코프, 접근제한자 설명 & 예제 (0) | 2021.02.02 |
[Kotlin] 코틀린의 기본 프로젝트 구조 설명 & 예제 (0) | 2021.02.02 |
[Kotlin] 오버라이딩, 추상화, 인터페이스 설명 & 예제 (0) | 2021.02.01 |