[swift] 제네릭을 사용하여 데이터 구조를 어떻게 정의하는가?
struct Queue<T> {
var elements = [T]()
mutating func enqueue(_ element: T) {
elements.append(element)
}
mutating func dequeue() -> T? {
if elements.isEmpty {
return nil
} else {
return elements.removeFirst()
}
}
}
var numberQueue = Queue<Int>()
numberQueue.enqueue(5)
numberQueue.enqueue(3)
print(numberQueue.dequeue()) // 출력: 5
위의 코드에서, Queue
구조체를 제네릭으로 정의하여, 다양한 유형의 요소를 담을 수 있도록 만들었습니다. 이것은 Int
뿐만 아니라 어떤 유형의 요소든 큐에 넣을 수 있게 해줍니다.
이와 같이 제네릭을 사용하면 코드의 재사용성을 높일 뿐 아니라, 프로그램 내부의 버그 발생 가능성을 줄일 수 있습니다.
참고 자료: