기존의 스위프트의 타입에는 Int, String, Float 등 여러가지로 다양하다.
그런데 가끔 타입으로만 적혀있으면 이해하기 힘들 때가 있다. 🤔
프로그래머스의 주차요금 계산 을 풀면서 있었던 일인데
var parkingLot: [Int : String] = [:] // 주차장
var parkingReceipt: [Int : String] = [:] // 요금 영수증 Dict
이렇게 주차장을 나타내는 주차장
딕셔너리와 주차 요금을 저장해두는 요금영수증
딕셔너리를 생성했는데 모두 [Int : String]
형태로 표현이 되니 가독성이 떨어진다고 생각했다.
그래서 이전에 어렴풋이 알고 있었던 typealias를 사용했다.
typealias는 타입에 별명을 붙여주어서 이해하기 쉽도록 가독성을 높여주는 것인데
예를들어 사람의 이름을 붙여준다면
var ironMan : String = "Tony"
var ironMan : Name = "Tony"
첫번째처럼 String
타입을 정해주는 것보다 타입에 별명을 붙여서 Name
으로 타입을 붙여주는것이 더 가독성이 좋아질 것이다.
사용 방법은 간단하다.
typealias Name = String
이렇게 typealias에 별명을 입력하고 별명의 타입을 적어주기만 하면된다.
그러면 위처럼 Name
별명을 사용한 타입을 붙여줄 수 있다.
또 사용자 정의 타입에 대해 별명을 붙여줄 수 있는데
class Cookie {
}
typealias cookies = [Cookie]
var snack: cookies = []
이렇게 사용자 정의 배열타입을 가진 별명도 만들 수 있다.
typealias CarNumber = Int
typealias Time = String
typealias TotalTime = Int
var parkingLot: [CarNumber : Time] = [:] // 주차장
var parkingReceipt: [CarNumber : TotalTime] = [:] // 요금 영수증 Dict
typealias를 써서 훨씬 가독성이 높아진 모습이다 👍