reduce는 스위프트의 고차함수 중 하나로, 컬렉션(배열, 딕셔너리, 세트)의 요소들을 결합하거나 축소하여 하나의 결과값을 생성하는 함수입니다.
주로 초기값과 클로저를 활용하여 컬렉션 내의 요소들을 반복하면서 연산을 수행합니다.
func reduce<Result>(_ initialResult: Result, _ nextPartialResult: (Result, Element) throws -> Result) rethrows -> Result
initialResult : 연산의 초기값으로 사용될 값입니다.
nextPartialResult : 클로저로, 컬렉션의 각 요소와 이전 단계의 결과값을 받아 새로운 결과값을 반환하는 역할을 합니다.
let numbers = [1, 2, 3, 4, 5]
let sum = numbers.reduce(0) { (result, number) in
return result + number
}
print(sum) // 출력: 15
let numbers = [2, 3, 4, 5]
let product = numbers.reduce(1) { (result, number) in
return result * number
}
print(product) // 출력: 120
let words = ["Hello", "Swift", "Programming"]
let combined = words.reduce("") { (result, word) in
return result + " " + word
}
print(combined) // 출력: " Hello Swift Programming"
let scores = ["Alice": 85, "Bob": 92, "Charlie": 78]
let totalScore = scores.reduce(0) { (result, keyValue) in
let (_, score) = keyValue
return result + score
}
print(totalScore) // 출력: 255
참고(출처) : 개발하는 정대리, 야곰(Swift5>> 참고(출처) : 개발하는 정대리, 야곰(Swift5식)