AI Store에서 AI코딩으로 만들어진 앱을 만나보세요!
지금 바로 방문하기

고차함수 개념 및 사용 예시

카테고리

프로그래밍/소프트웨어 개발

서브카테고리

개발 툴

대상자

  • 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)