typealias
기존에 선언되어있는 유형에 새로운 유형의 별칭을 사용함으로써
코드를 더 읽기 쉽도록, 이해하기 쉽도록 명확하게 만드는문법입니다.
Swift 에서는 typealias 를 대부분의 유형에 사용이 가능하고 크게 3가지 유형으로 나눠볼 수 있습니다.
1. 내장 유형 -> String, Int, Float 등..
2. 사용자 정의 유형 -> Class, Struct, Enum 등..
3. 복합 유형 -> Closure
1. 내장 유형에 대한 예시
1 | typealias Name = String |
간단한 예로 String 유형을 Name 이라는 별칭으로 사용한다 선언합니다.
1 | let name: Name = "홍길동" |
1 | let name: String = "홍길동" |
위에 선언한 Name 이라는 typealias 를 사용하는 예입니다.
바로 위 선언된 2개의 변수는 같은 String 타입이지만
특별한 분류가 필요하거나 구분지어 사용하고싶을때
typealias 를 사용하여 이 변수는 Name 이라는 유형의 String 이다. 라는 방식으로 사용할 수 있습니다.
2. 사용자 정의 유형에 대한 예시
자체적인 데이터 형식을 만들어야 할 경우가 있을때 Class를 사용하여 만들 수도 있습니다.
간단한 예로 학생들의 대한 데이터를 구현해봅니다.
1 2 3 | Class Student { } |
학생에 대한 Class를 구현합니다.
1 | typealias Students = [Student] |
만들어 둔 Student Class를 typealias 를 통해 Students 라는 Student배열로 선언합니다.
1 | var students: Students = [] |
students 라는 변수를 Students 타입으로 초기화합니다.
이때 Students 라는 타입은 Array<Student>, [Student] 타입과 같은 타입이 됩니다.
3. 복합적인 유형에 대한 예시
Closure 를 입력 매개 변수로 사용하는 함수를 typealias 를 사용하여 깔끔하게 만들어볼 수 있습니다.
1 2 3 | func test(completeHandler: (Void) -> (Void) ) { } |
test 라는 함수에 completeHandler 라는 Closure 를 선언했을때
1 | typealias voidHandler = (Void) -> (Void) |
voidHandler 라는 typealias를 선언한뒤에
1 2 3 | func test(completeHandler: voidHandler) { } |
이런 방법으로 Closure를 typealias 를 사용하여 좀 더 깔끔하게 사용할 수 있습니다.
의식하고 신경써서 사용한다면 꽤나 간편하고 이해하기 쉽게 코딩이 가능할 것 같다고 생각합니다.
그럼 20000
'Swift' 카테고리의 다른 글
[Swift] 옵셔널 (Optional) (7) | 2018.06.01 |
---|---|
[Swift] VLC ( View Life Cycle ) (0) | 2017.11.09 |
[Swift] ALC ( App Life Cycle ) (0) | 2017.11.08 |
[Swift] Thread (0) | 2017.11.07 |
[Swift] GCD (Grand Central Dispatch) (1) | 2017.11.07 |