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

+ Recent posts