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