Generic 사전적 뜻은 포괄적인, 총칭의
Int a와 Int b 의 값을 바꿔주는 함수가 있다고하자.
만약 a, b의 값이 double이라면? 새로 함수를 만들어야한다.
String 타입이라면? 또 함수를 만들어줘야한다.
a와 b의 타입에 따라서 함수 파타미터 타입을 결정해줄 때 사용한다.
함수가 호출 될 때 타입이 결정된다는 뜻!!
예시
func swapTwoValue<T>(_ a: inout T, _ b: inout T){
let temporaryA = a
a = b
b = temporaryA
}
파라미터의 T는 타입 파라미터라고 부르고
함수 이름 옆 <T>는 Placeholder 타입 이름이다.
<T>가 지금은 하나지만 여러개를 쓸 수 있다. ","로 구분하면 된다.
만약 특정 제약을 주고싶다면
<T : SomeClass>, <T: SomeProtocol>과 같이 타입제약을 사용한다.
반드시 SomeClass나 SomeProtocal의 하위 클래스여야 한다는 제약이다.
출처
'개발 > 개발' 카테고리의 다른 글
[iOS] - XML Parse사용법 (0) | 2020.06.05 |
---|---|
[iOS] - 위치정보(위도 경도 획득하기) (2) | 2020.05.31 |
[iOS] - Hashable Protocol 은 무엇일까요??? (0) | 2020.05.27 |
[iOS] - GCD란??? (0) | 2020.05.27 |
[iOS] - 코코아 터치 프레임워크란? (0) | 2020.05.27 |