-
Swift - Generic Type 확장하기Programming/Swift 2022. 1. 24. 20:48
안녕하세요 BeePeach입니다 :)
오늘 공부해볼 내용은 extension을 이용해서 Generic Type을 확장하는 방법입니다.
Extension을 이용해서 Type을 확장하는 방법에 대해서는 이전에 공부했었습니다.
그럼 Generic Type도 extension으로 확장 가능하겠죠??
어떻게 하는지 같이 공부해보도록 하겠습니다.
Extending a Generic Type
Generic Type을 공부할 때 만들어 보았던 Stack 구조체입니다.
이 구조체를 확장하고 싶어서 extension Stack<Element> {}을 했더니 Element를 찾을 수 없다고 합니다.
Generic Type을 extension으로 확장할 때는 타입 파라미터를 정의하는 부분을 적으면 안 됩니다.
하지만 타입 파라미터를 적어주지 않아도 extension 내부에서 사용할 수 있습니다.
<Element>를 삭제하니 이전에 발생하는 에러 메시지가 사라진 것을 확인할 수 있습니다.
심지어 extension안에서 Element를 사용해도 에러가 발생하지 않습니다.
topItem은 Stack에서 가장 최근에 저장된 element를 반환해줍니다.
만약 Stack이 비어있다면 nil을 리턴해주는 computed property입니다.
(Extension에서 프로퍼티를 추가하려면 computed property만 추가가 가능한 점을 기억해주세요.)
이렇게 Generict Type을 확장할 때는 타입 파라미터 선언을 생략해주는 것을 기억해주시면 됩니다.
참고자료
https://docs.swift.org/swift-book/LanguageGuide/Generics.html
728x90'Programming > Swift' 카테고리의 다른 글
Swift - reduce(_:_:)와 reduce(into:_:) (0) 2022.01.29 Swift - Generic Type Constraint (0) 2022.01.25 Swift - Associated Type (0) 2022.01.19 Swift - Generic Type (0) 2022.01.18 Swift - Generic (0) 2022.01.17