[회고] 신입 iOS 개발자가 되기까지 feat. 카카오 자세히보기

🍎 Apple/Swift

[Swift] Generic

inu 2022. 3. 7. 21:27
반응형

Swift - Generic

  • Generic을 사용하면 좀 더 유연하게 Funtion 및 Type을 작성할 수 있습니다. 중복을 피하고 그 의도를 추상적인 방식으로 표현하는 코드를 작성합니다.
  • 아래와 같은 방식으로 사용합니다.
func swapTwoValues<T>(_ a: inout T, _ b: inout T) {
    let temporaryA = a
    a = b
    b = temporaryA
}
  • 이름은 자유롭게 지정할 수 있습니다. 일반적으로는 T,U,V와 같은 단일 문자를 많이 사용합니다.
  • Generic 뒤에 단일 클래스 혹은 프로토콜을 배치하여 Generic의 타입을 제한할 수도 있습니다.
func someFunction<T: SomeClass, U: SomeProtocol>(someT: T, someU: U) {
    // function body goes here
}
  • where 절을 통해 조건을 줄 수도 있습니다.
func allItemsMatch<C1: Container, C2: Container>
    (_ someContainer: C1, _ anotherContainer: C2) -> Bool
    where C1.Item == C2.Item, C1.Item: Equatable {

        // Check that both containers contain the same number of items.
        if someContainer.count != anotherContainer.count {
            return false
        }

        // Check each pair of items to see if they're equivalent.
        for i in 0..<someContainer.count {
            if someContainer[i] != anotherContainer[i] {
                return false
            }
        }

        // All items match, so return true.
        return true
}

참고

반응형

'🍎 Apple > Swift' 카테고리의 다른 글

[Swift] Method Swizzling  (0) 2022.04.10
[Swift] Localizing (NSLocalizedString)  (5) 2022.04.10
[Swift] NotificationCenter  (0) 2022.03.07
[Swift] KVC(Key-Value Coding), KVO(Key-Value Observing)  (0) 2022.03.01
[Swift] Monad  (0) 2022.03.01