[swift] 제네릭을 사용하여 함수의 재사용성을 높이는 방법은?

제네릭(Generic)이란?

제네릭은 서로 다른 타입의 값을 다루는 함수, 구조체, 열거형 등을 정의할 때 유용한 방법입니다. 이를 통해 코드의 재사용성을 높이고 타입 안정성을 유지할 수 있습니다.

제네릭 함수 정의

함수를 제네릭하게 만들려면 함수 이름 뒤에 <T>와 같이 제네릭 파라미터를 추가하고, 함수 내부에서 해당 제네릭 타입을 사용하면 됩니다.

예를 들어, 배열에서 특정 값이 존재하는지 확인하는 제네릭 함수를 정의해보겠습니다.

func containsValue<T: Equatable>(value: T, in array: [T]) -> Bool {
    for item in array {
        if item == value {
            return true
        }
    }
    return false
}

위의 함수는 제네릭 타입 T를 사용하여 임의의 타입에 대해 동작할 수 있습니다.

제네릭 함수의 활용

이제, 위에서 정의한 제네릭 함수를 여러 타입에 대해 활용할 수 있습니다.

let intArray = [1, 2, 3, 4, 5]
let doesContainInt = containsValue(value: 3, in: intArray)  // true

let stringArray = ["Apple", "Banana", "Orange"]
let doesContainString = containsValue(value: "Kiwi", in: stringArray)  // false

위의 예시에서 containsValue 함수는 Int 배열과 String 배열에 대해 동일한 방식으로 동작합니다.

제네릭을 사용하여 함수의 재사용성을 높여보세요!