고차 함수(Higher-order functions)

2022. 5. 21. 19:53Android/Kotlin

고차 함수(Higher-order functions)

함수는 다른 함수를 인수로 취할 수 있습니다. 다른 함수를 인수로 사용하는 함수를 고차 함수라고 합니다. 이 패턴은 자바에서 콜백 인터페이스를 사용할 때와 동일한 방식으로 구성요소 간에 통신하는 데 유용합니다.

 

다음은 고차 함수의 예입니다.

 
fun stringMapper(str: String, mapper: (String) -> Int): Int {
    // Invoke function
    return mapper(str)
}

stringMapper() 함수는 전달된 String에서 Int 값을 파생하는 함수와 함께 String를 가져옵니다.

아래 예와 같이 다른 입력 매개변수를 충족하는 함수, 즉 String을 입력으로 사용하고 Int를 출력하는 함수와 String을 전달하여 stringMapper()를 호출할 수 있습니다.

 
stringMapper("Android", { input ->
    input.length
})

아래 예와 같이 익명 함수가 함수에 정의된 마지막 매개변수인 경우 함수를 호출하는 데 사용된 괄호 밖에서 함수를 전달할 수 있습니다.

 
stringMapper("Android") { input ->
    input.length
}

익명 함수는 Kotlin 표준 라이브러리 전체에서 찾을 수 있습니다. 자세한 내용은 고차 함수 및 람다를 참조하세요.

'Android > Kotlin' 카테고리의 다른 글

getOrElse, getOrNull  (0) 2022.05.22