카테고리 없음

[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에서 거의 모든 것을 만들고 
해당 프로토콜을 따르기만 하는 타입을 선언하면 된다.

반응형