[Kotlin]함수 - fold, reduce

MariGold·2025년 1월 2일

[Kotlin]함수

목록 보기
4/14

fold와 reduce는 Kotlin에서 collection을 다룰 때 유용하게 사용할 수 있는 함수입니다. 두 함수는 collection의 모든 요소를 합치거나, 누적하는데 사용합니다.


fold

fold함수는 collection을 순차적으로 처리하면서, 누적된 결과를 반환하는 함수입니다. 중요한 점은 초기값을 제공한다는 것입니다. fold함수는 이 초기값을 사용하여 첫 번째 요소부터 계산을 시작하고, 결과값을 누적해가며 최종 결과를 도출합니다.

val numbers = listOf(1, 2, 3, 4, 5)
val sum = numbers.fold(10) { acc, number -> acc + number } // 초기값 10
println(sum)  // 초기값 + numbers의 합인 25 출력

각 요소가 계산될 때마다 누적된 값이 acc로 전달되어 최종적으로는 누적 결과값을 제공합니다. fold함수는 초기값이 존재하기 때문에 빈 collection이 주어진다면, 초기값이 그대로 반환됩니다.


reduce

reduce함수는 fold함수와 비슷하지만, 초기값을 제공하지 않고 collection의 첫 번째 요소를 초기값으로 사용하여 누적 연산을 시작합니다.

val numbers = listOf(1, 2, 3, 4, 5)
val sum = numbers.reduce { acc, number -> acc + number }
println(sum) // 15출력

초기값이 없기 때문에 reduce함수는 첫 번 째 요소를 기준으로 누적을 시작합니다. 또한 초기값이 없기에 빈 collection에 recue함수를 사용하면 NoSuchElementException이 발생합니다.

profile
많은 것을 알아가고 싶은 Android 주니어 개발자

0개의 댓글