728x90
아이디어가 나오지 않는다
주말에는 좀 나왔으면 하는 바램이다
Generic
타입에 유연하게 대응하기 위해 사용한다
Generic으로 구현한 타입과 기능은 재사용이 쉽고 코드의 중복을 줄일 수 있기 때문에 깔끔한 표현이 가능하다
*T : TypeParameter
제네릭에서는 일반적으로 TypeParameter에 T, U, K 사용하며 플레이스 홀더와 같은 역할을 한다
*타입의 종류는 알려주지 않지만 제네릭으로 이루어진 함수를 사용할 때 T에 들어가야하는 타입은 모두 같아야 한다
제네릭은 위처럼 2개의 파라미터 사용도 가능하다
*Type Constraints
타입에 제약조건을 줄 수 있다
Numeric 프로토콜을 채택하지 않으면 제네릭 함수를 사용하지 못한다
Numeric 프로토콜을 채택했다면 함수를 사용할 수 있다
*inout Parameter
파라미터로 전달 받은 값은 함수 내에서 변경이 불가능하다
위의 코드처럼 a,b의 파라미터 값을 바꾸고 싶다면 inout 파라미터 앞에 붙여주어야 한다
*Equatable Protocol
Equtable Protocol을 준수하지 않으면
one.name == two.name은 오류가 난다
비교 기준을 모르기 때문이다
Equtable Protocol을 채택할 경우 작성해야하는 규약이 나오는데 규약을 준수한 코드 작성 후
Equtable Protocol 채택 전 오류가 발생했던 one.name == two.name 등위연산자의 연산이 가능하게 된다
'Tech > iOS' 카테고리의 다른 글
<FOOCA> 출시 회고 (1) | 2022.10.04 |
---|---|
[iOS]Day45 - TypeCasting (0) | 2022.08.18 |
[iOS] Day44 - Storyboard 없이 코드로 UI 설정해보기(Feat. Snapkit) (0) | 2022.08.17 |
[iOS]Day43 - UIPageViewController (0) | 2022.08.16 |
[iOS]Day43 - Custom FrameWork (0) | 2022.08.16 |