본문 바로가기
Swift

Swift에서 Map 만들어보기

by zinozino 2023. 5. 3.

고차함수 중 가장 많이 사용하고있는 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도 만들어보도록 하겠습니다.