Link
Notice
HIT해
[Swift 기초문법 - 39] reduce 본문
728x90
Reduce란?
주어진 클로저를 사용하여 시퀀스의 요소를 결합한 결과를 반환합니다.
=> 요소들을 다 합친다고 보면 됨
사용예시
struct Friend : Hashable {
var name : STring
var age : Int
}
let myFriends = [
Friend(name:"철수", age : 10)
Friend(name:"짱구", age : 10)
Friend(name:"유리", age : 10)
Friend(name:"멩구", age : 10)
]
let totalAge = myFriends.reduce(0) { partialResult , aFriend in
return partialResult + aFriend.age
}
// reduce(초기값) { partialResult , aFriend in // partialResult 처음에는 초기값이 들어온다
// return partialResult + aFriend.age
//}
요소들을 돌면서 값들을 합치게 할 수 있다.
( 알고리즘 문제에서 유용하게 사용할 수 있을지도..? 속도만 빠르다면.. )
다른 사용 방법이 있다.
// [:] 딕셔너리 형태로 만들겠다
let groupedFriends = myFriends.reduce(into: [:]){
partialResult, aFriend in
partialResult[aFriend.age] = myFriends.filter{ $0.age == aFriend.age }
// return partialResult[aFriend.age] = myFriends.filter{ $0.age == aFriend.age }
// return 생략해도된다
}
groupedFriends // 나이별로 묶여짐
'Swift > 기초문법' 카테고리의 다른 글
[Swift 기초문법 - 41] Optional chaining (0) | 2024.08.17 |
---|---|
[Swift 기초문법 - 40] 콜렉션간 변형 (0) | 2024.08.17 |
[Swift 기초문법 - 38] 콜렉션 합치기 (0) | 2024.08.16 |
Swift 공식문서 (0) | 2024.08.16 |
[Swift 기초문법 - 36] Convenience init (0) | 2024.08.14 |