swapTwoValues(:) 예제에서 임의의 타입 T는 타입 파라미터의 예입니다.
타입 파라미터는 꺾쇠 괄호 (예: <T>) 사이에 작성하고 함수명 바로 뒤에 작성되어 임의의 타입을 지정합니다.
타입 파라미터를 지정하면 함수의 파라미터 타입(swrapTwoValue(:) 함수의 a, b와 같이)을 정의하기 위해 사용하거나 함수의 반환 타입이나 함수의 본문 내에서 타입 주석으로 사용할 수 있습니다.
각각의 경우 타입 파라미터는 함수가 호출될 때마다 실제 타입으로 대체됩니다.
(위 예제에서 swapTwoValues(:) 함수는 첫번째 불릴때 Int로 유추되고, 두번째 불릴떄 String으로 유추됩니다.)
콤마로 구분된 꺾쇠 괄호 안에 여러개의 타입 파라미터를 작성하여 하나 이상의 타입 파라미터도 제공 가능합니다.
Naming Type Parameters
대부분의 경우에 타입 파라미터는 타입 파라미터와 제네릭 타입 간의 관계나 함수 관계를 나타내기 위해 Dictionary<Key, Value> 에서 Key와 Value 그리고 Array<Element> 에서 Element와 같이 설명이 포함된 이름이 있습니다.
그러나 의미있는 관계가 없을 때는 위 swapTwoValues(:) 함수 예제에서 T를 사용한 것과 같이 T, U, V 등 단일 문자를 사용하는 것이 일반적입니다.
Note
값이 아니라 타입에 대한 임의의 표시라는 것을 나타내기 위해 항상 타입 파라미터가 주어질 때 대문자 이름 (T와 MyParameter 처럼)으로 주어집니다.
'Swift > 꼬꼬무' 카테고리의 다른 글
Generics - Type Constraints (타입 제약) (0) | 2023.07.26 |
---|---|
Generics - Generic Types (0) | 2023.07.26 |
Generics - Generic Functions (0) | 2023.07.18 |
Protocol Extensions (프로토콜 확장) (0) | 2023.07.05 |
Optional Protocol Requirements (옵셔널 프로토콜 요구사항) (0) | 2023.07.05 |