[swift] Swift 구조체에서 사용되는 Generic에 대해 알려주세요.
Swift에서 Generic은 타입 안정성과 재사용성을 높이는 강력한 도구입니다.
Generic이란 무엇인가요?
Generic은 코드를 작성할 때 타입을 지정하지 않고 일반적으로 표현하는 방법을 제공합니다. 이는 함수, 구조체, 클래스, 열거형 등에서 사용할 수 있습니다. Generic을 이용하면 같은 코드를 여러 타입에서 재사용할 수 있으며, 타입 안정성을 유지할 수 있습니다.
구조체에서 Generic 사용하기
Swift 구조체에서 Generic을 사용하려면 struct 키워드 뒤에 <T> 형식의 제네릭 파라미터를 추가하면 됩니다.
예를 들어, 배열을 담는 Stack 구조체를 만들고자 할 때, Generic을 사용하여 재사용성을 높일 수 있습니다.
struct Stack<T> {
private var elements = [T]()
mutating func push(_ element: T) {
elements.append(element)
}
mutating func pop() -> T? {
return elements.popLast()
}
}
위 예제에서 제네릭 파라미터 T를 사용하여 Stack 구조체를 만들었습니다. 이제 Stack 구조체를 사용할 때 매번 특정 타입을 지정할 필요 없이 원하는 타입을 지정하여 사용할 수 있습니다.
var intStack = Stack<Int>()
intStack.push(1)
intStack.push(2)
print(intStack.pop()) // 2 출력
var stringStack = Stack<String>()
stringStack.push("A")
stringStack.push("B")
print(stringStack.pop()) // "B" 출력
정리
Swift 구조체에서 Generic을 사용하면 코드의 재사용성을 높이고 타입 안정성을 유지할 수 있습니다. Generic을 활용하여 여러 타입에서 유연하게 사용할 수 있는 코드를 작성할 수 있습니다.
더 많은 정보는 Swift 공식 문서를 참고하시기 바랍니다.