카테고리 없음
[Swift] AssociatedType
Liber21
2021. 2. 26. 17:39
반응형
Associatedtype는 하나 이상 프로토콜에 관련있는 타입의 이름을 지정한다.
즉 타입이 지정될 때까지 임의의 타입를 가진다는 말이다.
타입 T인 name 은 하나 이상의 프로토콜을 따르므로, 프로토콜에 정의된 변수 또는 함수를 사용할 수 있다.
protocol B {}
protocol C {}
extension B {
var description : String {
return "Hi"
}
}
extension C {
var bug : String {
return "Bug"
}
}
protocol A {
associatedtype T : B, C
var name : T { get set }
}
extension A {
mutating func set(name : T) {
self.name = name
}
var description : String {
return name.description
}
var bug : String {
return name.bug
}
}
associatedtype을 잘 이용하면 Protocol Extension에서 거의 모든 것을 만들고
해당 프로토콜을 따르기만 하는 타입을 선언하면 된다.
반응형