고차함수 개념 및 사용 예시
카테고리
프로그래밍/소프트웨어 개발
서브카테고리
개발 툴
대상자
- Kotlin 개발자
- 함수형 프로그래밍 개념 이해를 위한 중급 이상 개발자
- Android 앱 개발 시 고차함수 활용법 학습을 원하는 개발자
핵심 요약
- Kotlin 함수는 1등시민(First-class) 객체로, 변수에 저장/전달/반환 가능
fold
와 같은 고차함수는 컬렉션 요소를 누적 처리하는 패턴 제공 ((acc: R, nextElement: T) -> R
형식)setupOperatorButton
예제에서operation: (Double, Double) -> String
과 같은 함수형 인자 사용 가능
섹션별 세부 요약
1. Kotlin 함수의 1등시민 특성
fun
키워드로 선언, 파라미터는name: type
형식으로 정의add(x: Int, y: Int): Int
예제에서 반환 타입 명시 가능val result = acc + i
와 같은 표현식을 사용한 간결한 함수 정의
2. Default Argument 활용 예시
getRandomPercentage(start: Int = 0, end: Int = 100)
에서 기본값 설정getRandomPercentage(end = 50)
처럼 파라미터 이름 기반 호출 가능kotlin.random.Random.nextInt(start, end)
로 랜덤 수 생성
3. 고차함수 구현 예시: `fold`
fold(initial: R, combine: (acc: R, nextElement: T) -> R)
items.fold(0, { acc, i -> acc + i })
로 리스트 요소 누적 처리acc
는 누적값,nextElement
는 현재 요소를 매개변수로 받는combine
함수
4. Android 앱 개발 예시
setupOperatorButton(binding.plusBtn) { a, b -> Calculator.add(a, b) }
operation: (Double, Double) -> String
형식의 함수형 인자 전달Calculator
객체에서add
,subtract
등 연산 함수 정의
결론
- 고차함수는 코드 재사용성과 유연성을 높이는 핵심 패턴
fold
와 같은 내장 고차함수는 컬렉션 처리에 효율적- 함수형 인자 사용 시
operation: (Double, Double) -> String
형식을 명확히 정의해야 함 - Android 앱에서 UI 이벤트 핸들러에 함수형 인자 전달 가능 (예:
setupOperatorButton
)