[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 공식 문서를 참고하시기 바랍니다.