Swift 기초 문법 - 54. 프로토콜 조건 적용

정성윤·2023년 8월 20일
0

Swift 이론

목록 보기
57/64

스위프트에서 프로토콜 조건은 제네릭 타입의 제약 조건을 정의하는 데 사용되는 개념입니다.

제네릭 함수나 타입을 선언할 때, 특정 프로토콜을 준수하는 타입만을 제네릭으로 받도록 제한하고 싶을 때 사용됩니다.

func someFunction<T: SomeProtocol>(parameter: T) {
    // 함수 내용
}

struct SomeStruct<T: AnotherProtocol> {
    // 구조체 내용
}

<T: SomeProtocol>와 <T: AnotherProtocol>는 제네릭 타입 T가 각각 SomeProtocol와 AnotherProtocol 프로토콜을 준수하는 타입으로 제한되도록 정의한 것입니다.

func findIndex<T: Equatable>(of valueToFind: T, in array: [T]) -> Int? {
    for (index, value) in array.enumerated() {
        if value == valueToFind {
            return index
        }
    }
    return nil
}

let names = ["Alice", "Bob", "Charlie"]
let index = findIndex(of: "Bob", in: names)
print("Index of Bob: \(index ?? -1)") // Index of Bob: 1

findIndex 함수에서 T: Equatable은 valueToFind와 배열의 요소들이 Equatable 프로토콜을 준수하는 타입으로 제한됩니다.
이를 통해 == 연산자를 사용하여 값을 비교할 수 있습니다.

참고(출처) : 개발하는 정대리, 야곰(Swift5)

profile
이유있는 스위프트 개발자

0개의 댓글