where
-
Swift Generic - 2Programming/Swift(iOS) 2021. 4. 6. 14:50
배열 sort함수를 예로 들어보죠. sort는 배열 안에 담긴 객체 타입이 어떤것이냐에 따라서 다른데요. Int, Float, String등 시스템에서 제공하는 기본타입은 sorted가 됩니다. 하지만 사용자가 구현한 객체 타입은 되지 않습니다. 이유는 기본 타입의 경우에는 'Comparable' Protocol을 미리 준수했기 때문입니다. 사용자가 만든 객체의 경우에도 동일하게 'Comparable' Protocol을 준수하면 가능합니다. 갑자기 제너릭 하다가 프로토콜로 빠져버렸는데요. sorted는 타입에 따라서 모두 제공을 하기 때문에 제너릭으로 구현되어 있습니다. 원형을 찾아보면 Self.Element로 되어 있습니다. @inlinable public func sorted() -> [Self.El..