티스토리 뷰
Protocol Associated Type Declaration
프로토콜에 associatedType 선언하기
프로토콜(Protocol)은 associatedType 키워드를 사용해서 관련 타입(associated types)를 선언합니다.
associatedtype은 프로토콜의 정의 일부로서 사용되는 별명타입을 제공합니다.
관련타입(associatedtype)은 제네릭 매개변수 절에 있는 타입 매개변수와 유사합니다. 하지만, associatedtype은 정의되어 있는 프로토콜의 Self와 관련이 있다는 특징이 있습니다. 앞서 말한 Self는 프로토콜을 채택하고 준수하는 실질적인 대상 타입을 참조합니다. 이에 대한 더 자세한 내용이 궁금하다면, Associated Types를 참고하세요.
associatedtype constraint configuration with where clause
where절을 사용한 associatedtype 제약 설정
개발자는 프로토콜 선언 부의 where 절에서 제네릭(generic)을 사용할 수 있습니다.
associatedtype의 사용 시 재정의가 필요없도록 where절에 준수해야 할 프로토콜 제약을 명시해서 associatedtype에 대한 제약을 주도록 할 수 있습니다.
아래의 코드를 예시로 들자면, SubProtocolA, SubProtocolB 내의 associatedtype은 Equatable 프로토콜을 준수해야하는 제약을 갖고 있습니다.
하지만 SubProtocolA는 동일한 associatedType을 재정의하면서 경고를 유발합니다. 결과적으로, 두가지 선언 방법 중, SubProtocolB와 같이 where 절을 사용해서 associatedtype을 정의하여 associatedtype의 재정의를 방지하는 것이 바람직 합니다.
'iOS 개발 > 개발자문서 정보' 카테고리의 다른 글
스위프트 문법 Nested Functions, 중첩 함수 사용법 (0) | 2020.07.14 |
---|---|
Swift 문법, Variadic Parameters 가변인자 사용법 (0) | 2020.07.13 |
Swift typealias, 스위프트 별명 사용방법, 주의사항 (0) | 2020.07.07 |
Swift Generic 2) 제네릭 사용방법, 활용예시 (0) | 2020.07.06 |
Swift Generic 1) 제네릭 개요 및 역할 알아보기 (0) | 2020.07.05 |
- Total
- Today
- Yesterday
- swift언어
- Protocol
- 백준알고리즘
- swift알고리즘
- 알고리즘문제
- createML
- CoreML
- swift reduce
- swift string
- swift문제
- 프로토콜
- swift 기초
- 부스트코스
- 백준swift
- uikit
- 김프매매
- 컬렉션
- swift
- 프로그래머스
- 알고리즘
- 프로그래머스swift
- 자연어처리
- 스위프트
- swift 문자열
- publisher
- 개발자문서
- Collection
- SwiftUI
- Swift 알고리즘
- ios
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |