맛동산이

Swift) Protocol과 Associated type 본문

앱/Swift

Swift) Protocol과 Associated type

진ddang 2023. 7. 4. 13:34

associatedtype

associatedtype은 프로토콜에서 지네릭을 사용하기 위해서 사용하는 문법이다.

Generic이란

지네릭이란, 타입에 의존하지 않고 범용적으로 코드를 작성할때 사용하는 방식으로, 실제 함수가 호출될 때 해당 매개변수의 타입으로 대체되는 Placeholder를 의미한다.

하지만 기존의 프로토콜에서 지네릭을 사용하고 싶다면 associated type을 사용하라고 가이딩 한다.

실제로 사용하려면

이렇게 하면된다.

이거를 실제 채택한 클래스에서 다음과 같이 사용하면된다.

protocol someProtocol {
    associatedtype someType
    func getSomeType(t: someType)
}

class Adapt: someProtocol {
    typealias someType = Int

    func getSomeType(t: Int) {
        print(t.customMirror.subjectType)
    }
}
let adapt = Adapt()
adapt.getSomeType(t: 12) // Int


Uploaded by N2T

반응형