iOS/Swift문법

[Swift 문법] 프로토콜 associatedType - day12

안드뽀개기 2022. 4. 5. 14:38
반응형
// 프로토콜 associatedType
protocol PetHaving {
//associatedtype를 통해 제네릭 타입을 설정할 수 있다.
associatedtype T
var pets: [T] { get set }
mutating func gotNewPet(newPet: T)
}
extension PetHaving {
mutating func gotNewPet(newPet: T) {
self.pets.append(newPet)
}
}
enum Animal {
case cat, dog, bird
}
// Friend struct는 PetHaving의 제네릭타입이 Animal라는 타입으로 설정됨
struct Friend: PetHaving {
var pets = [Animal]()
}
// Friend struct는 PetHaving의 제네릭타입이 String라는 타입으로 설정됨
struct Family: PetHaving {
var pets: [String] = []
}
view raw example.swift hosted with ❤ by GitHub
반응형