내가 보기 위한 Class, Extension, Protocol, HigherOrderFunc 정리 !!
Class, Extension, Protocol 의 개념을 정리해봤어요 !
알면 참 편한 HigherOrderFunc도 추가로 정리했어요 !
Class
- 상속 개념
- override : 상속받은 내용을 변경 하는 것
- 참조 : 어디서 접근하여 값을 변경하던 공통되게 변경 ( 값은 1개, 참조하는 Class들은 그 1개를 바라 봄) -> Class에서만 가능
1 | class ScoreBoard { |
Properties
- Class, struct, enum
- Stored Properties : 값이 저장된 형태
- Computed Properties : 계산을 직접 넣어서 특정한 로직이 들어가 있는 형태
- get만 선언 시 read-only (입력 x)
- set 값을 입력 받아야 하는 경우
1 | class SomeClass { |
Initialization
- 초기화
- 옵셔널 사용 시 초기화 x
1 |
|
Deinitilization
- 초기화 해제
- 실행(class,struct,enum) 해제되는 순간에 실행 해야됨.
- ex. 팝업
1 | class Score { |
Extension
- 기존의 class, struct 등 구조에 기능을 추가하기 위해 사용
- 값을 새로 구성할 순 없다
- 어디서도 접근가능 하나 어느 곳에 소유될 순 없다
1 | extension UIcolor { |
Protocol
- 특정한 조건을 강제
- 앱 생성 시 call back 형식으로 많이 사용
- 특정한 값이 저장, 지정되는 것이 아닌 스타일(규격)만 지정
- protocol안의 코드는 반드시 구현해야 함
- 한 구조에 중복해서 사용 가능
1 | protocol DeskSize { |
Generic
- 타입을 사용할 때 정의 (각 상황에 따라 변경 가능)
- Numeric : 숫자형식의 모든 타입 가능
1 |
|
Higher Order Func
- Map
- 옵셔널 상태 유지
1 | let numberArray = [1,2,3,4,5] |
- Complact Map
- 옵셔널 상태 해제
1 | let someArray: [Any] = [2,3,4,"lee","jin"] |
- Filter
1 | let numberArray = [1,2,3,4,5] |
- Reduce
- 해당 변수 (Array 등) 의 결과 값 출력 시
1 | let numberArray = [1,2,3,4,5] |
- Sort
- sroted : return type (해당 값 별개로 정렬된 값 생성)
- sort : void ( 해당 값 자체를 정렬)
1 | let numberArray = [1,2,3,4,5] |