고차함수 중 가장 많이 사용하고있는 Map을 직접만들어서 사용하는 것을 구현해보도록 하겠습니다.
swift의 맵을 정의하는 곳을 보면 transform이라는 클로져를 통해서
Generic타입으로 새로운 값을 가져올 수 있도록 되어 있습니다.
func map<T>(_ transform: (Self.Element) throws -> T) rethrows -> [T]
extension Sequence {
func customMap<T>(_ transform: (Self.Element) throws -> T) rethrows -> [T] {
let new = [T]() //새로운 그릇
do {
// 순회하며 transform을 통해서 새로운 값을 전달받고 append
try self.forEach{ new.append(try transform($0))}
return new
} catch let error {
fatalError("transfrom \(error)!")
}
}
}
다음에는 filter도 만들어보도록 하겠습니다.
'Swift' 카테고리의 다른 글
\Root.Value 는 (Root) -> Value이다 (1) | 2023.09.26 |
---|---|
Swift Optional unWrapping을 좀 더 간편하게 쓰는 법 (0) | 2023.04.20 |
Array에서 중복 제거하는 방법 (0) | 2023.04.19 |
Array의 index를 안전하게 처리하는 방법 (2) | 2023.04.18 |
KeyPath (2) | 2023.01.16 |