일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 티스토리챌린지
- filternotnull
- portconflict
- 자바
- 서버실행실패
- JPQL
- entity
- java
- foreachindexed
- 오블완
- devpi
- JWT
- 스프링 부트
- 토큰
- JPA
- sumof
- 웹서버오류
- 토큰기반인증
- Stream
- Spring Boot
- map
- 코틀린
- 스프링
- Token
- 8080error
- kotlin
- javamailsender
- 객체지향
- api인증
- Spring
- Today
- Total
DeveloPiano
[Kotlin] sumOf 함수 본문
코틀린(Kotlin)은 강력하면서도 간결한 문법을 제공하는 프로그래밍 언어로, 다양한 컬렉션 연산을 쉽게 수행할 수 있도록 도와줍니다. 그중에서도 sumOf 함수는 컬렉션의 요소를 합산할 때 매우 유용한 함수입니다. 이번 포스팅에서는 sumOf 함수의 사용법과 실용적인 예제를 함께 살펴보겠습니다.
📌 sumOf 함수란?
코틀린의 sumOf 함수는 컬렉션의 각 요소를 특정 값으로 변환한 후, 이 값을 합산하는 기능을 합니다.
🔹 기본 문법
inline fun <T, R : Number> Iterable<T>.sumOf(selector: (T) -> R): R
- Iterable<T>: 컬렉션(리스트, 셋 등)의 요소를 반복할 수 있는 인터페이스
- selector: (T) -> R: 각 요소 T를 숫자 R로 변환하는 함수
- 반환값: 변환된 값들의 합
sumOf는 각 요소를 변환하는 selector 람다 함수를 받아, 변환된 값을 모두 더한 결과를 반환합니다.
🛠 sumOf 사용 예제
1️⃣ 기본적인 사용법
리스트의 숫자 값을 합산하는 간단한 예제입니다.
fun main() {
val numbers = listOf(1, 2, 3, 4, 5)
val sum = numbers.sumOf { it }
println("합계: $sum") // 출력: 합계: 15
}
2️⃣ 객체 리스트에서 특정 필드의 합 구하기
객체 리스트에서 특정 필드의 값을 합산할 때 유용하게 사용할 수 있습니다.
data class Product(val name: String, val price: Double)
fun main() {
val products = listOf(
Product("노트북", 1500.0),
Product("마우스", 30.0),
Product("키보드", 70.0)
)
val totalPrice = products.sumOf { it.price }
println("총 가격: $totalPrice") // 출력: 총 가격: 1600.0
}
3️⃣ 문자열 길이의 총합 구하기
컬렉션의 각 요소를 변환하여 문자열 길이의 합을 구할 수도 있습니다.
fun main() {
val words = listOf("Kotlin", "Programming", "Language")
val totalLength = words.sumOf { it.length }
println("총 길이: $totalLength") // 출력: 총 길이: 25
}
4️⃣ map + sum 대신 sumOf 사용하기
sumOf 없이 map과 sum을 조합해서 같은 결과를 얻을 수도 있지만, sumOf를 사용하면 더 간결하게 작성할 수 있습니다.
val numbers = listOf(1, 2, 3, 4, 5)
// 일반적인 방식
val sum1 = numbers.map { it }.sum()
// sumOf 사용
val sum2 = numbers.sumOf { it }
println("sum1: $sum1, sum2: $sum2") // 출력: sum1: 15, sum2: 15
sumOf는 map과 sum을 따로 사용하지 않아도 되므로 코드가 더욱 깔끔해집니다.
🎯 sumOf 사용 시 주의할 점
✅ 반환 타입 주의: sumOf의 반환 타입은 selector가 반환하는 숫자 타입을 따릅니다. 예를 들어, Int 값을 반환하면 Int, Double을 반환하면 Double 타입이 됩니다.
val numbers = listOf(1, 2, 3, 4, 5)
val sumInt = numbers.sumOf { it } // Int 타입 반환
val sumDouble = numbers.sumOf { it.toDouble() } // Double 타입 반환
✅ 널 값 처리: sumOf는 null을 허용하지 않으므로, null 값이 있을 경우 filterNotNull() 등을 활용해야 합니다.
val numbers = listOf(1, 2, null, 4, 5)
val sum = numbers.filterNotNull().sumOf { it }
println("합계: $sum") // 출력: 합계: 12
✨ 결론
코틀린의 sumOf 함수는 컬렉션의 요소를 변환하여 합산할 때 매우 유용한 함수입니다. map과 sum을 조합하는 것보다 간결하고 가독성이 좋아, 실무에서도 적극적으로 활용할 수 있습니다.
다음과 같은 경우 sumOf를 적극 활용하세요!
- 객체 리스트에서 특정 필드의 총합을 구할 때
- 문자열 리스트에서 총 길이를 계산할 때
- map과 sum을 함께 사용할 필요가 있을 때
앞으로 코틀린을 활용한 더욱 효율적인 개발을 위해 sumOf 함수를 잘 활용해 보세요! 🚀
'Develop > Kotlin' 카테고리의 다른 글
[Kotlin] 코틀린 for 문에서 until과 .. 차이점 완벽 정리 (0) | 2025.03.04 |
---|---|
[Kotlin] indices 속성 완벽 가이드 (1) | 2025.03.03 |
[Kotlin] check() vs require(): if 문과의 비교 (0) | 2025.01.31 |
[Kotlin] Map과 MutableMap : 읽기 전용과 변경 가능한 Map의 차이점 (0) | 2024.11.14 |
[Kotlin] Null Safety : ?와 Nullable 타입 (0) | 2024.09.02 |