WooKoo Blog

물과 같이

개발/개발

[Swift] - Generic(제네릭)

WooKoo 2020. 5. 28. 16:01

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의 하위 클래스여야 한다는 제약이다.

 


출처

https://zeddios.tistory.com/226