[swift] 제네릭을 사용하여 데이터의 유지보수성(maintainability)을 높이는 방법은?
예를 들어, 제네릭을 사용하여 제네릭 함수를 작성하고 싶다면 다음과 같이 작성할 수 있습니다:
func find<T: Equatable>(item: T, in array: [T]) -> Int? {
for (index, value) in array.enumerated() {
if value == item {
return index
}
}
return nil
}
위의 예제에서 find
함수는 제네릭으로 구현되어 있으며, Equatable 프로토콜을 준수하는 모든 데이터 타입에 대해 작동합니다. 이렇게 하면 특정 타입에 종속되지 않고 재사용할 수 있는 유연한 함수가 됩니다.
또 다른 예로, 제네릭 타입을 작성하고 싶다면 다음과 같이 작성할 수 있습니다:
struct Stack<Element> {
var items = [Element]()
mutating func push(_ item: Element) {
items.append(item)
}
mutating func pop() -> Element? {
return items.popLast()
}
}
위의 예제에서 Stack
은 제네릭으로 작성된 구조체이며, 어떤 타입의 데이터라도 스택으로 구현할 수 있습니다. 이렇게 하면 중복을 줄이고 쉽게 재활용할 수 있는 코드를 작성할 수 있습니다.
제네릭을 사용하면 코드의 유지보수성을 향상시키고, 재사용 가능한 코드를 만들 수 있습니다.