// Generic protocol을 선언하는 방법
//protocol QueueCompatible {
// func enqueue(value: Int)
// func dequeue() -> Int?
//}
protocol QueueCompatible {
associatedtype Element // : Equatable 연관형식을 제한할 수도 있음
func enqueue(value: Element)
func dequeue() -> Element?
}
class IntergerQueue : QueueCompatible {
// 연관 형식 설정
typealias Element = Int
// 연관 형식을 Int로 했기 때문에 Int
func enqueue(value: Int) {
}
func dequeue() -> Int? {
return 0
}
}
// 연관형식 생략
class DoubleQueue: QueueCompatible {
func dequeue() -> Double? {
<#code#>
}
func enqueue(value: Double) {
<#code#>
}
}