반응형
Type Alias
사용자가 원하는 이름으로 타입 이름을 만들어 줄 수 있습니다.
즉, 타입의 별칭, 약칭입니다.
가독성 상승. 새로운 타입으로 변경이 아니라 기존 타입의 역할만 해줍니다.
표현식
// 이름에서 첫 글자는 대문자 사용
typealias (사용할 이름) = (설정할 타입)
// ex
typealias NetworkService = Result<Data, Error>
typealias Calculator = (Double, Double) -> Double
사용법
간단하게, ThreeStr이라는 이름으로 3개의 String을 타입을 갖고 있는 튜플을 만들어 봤습니다.
typealias ThreeStr = (String, String, String)
let box: ThreeStr = ("과자", "인형", "Mac") // String이 3개가 있다 :ThreeStr (가독성 상승)
그리고 typealias도 일종의 타입이기 때문에, 이와 같이 함수에서도 사용할 수 있겠죠.
(받고 싶은 리턴형이 여러 개 일 때, typealias를 사용해서 깔끔하게 사용하기)
// 네임드 튜플로 묶어 줌
typealias HourMinSec = (totalHour: Int, totalMin: Int, totalSec: Int)
func convertDay(_ day: Int) -> HourMinSec {
let hour = Int(day * 24)
let min = Int(day * 24 * 60)
let sec = Int(day * 24 * 3600)
return (totalHour: hour, totalMin: min, totalSec: sec)
}
var day = convertDay(1)
print(day)
print(day.totalHour)
print(day.totalMin)
print(day.totalSec)
// (totalHour: 24, totalMin: 1440, totalSec: 86400)
// 24
// 1440
// 86400
typealias를 자주 사용해보진 않았지만, 장점이 많더라고요.
예를 들어, 클로저 식과 같이 긴 타입을 표현해줘야 할 때, typealias를 사용하면 가독성이 좋아지겠죠.
그리고 위와 같이, 튜플(연관된 데이터들의 묶음)과 사용할 때에도 효과가 증대될 것 같아 보입니다.
반응형
'Xcode > Swift 문법' 카테고리의 다른 글
[iOS/Swift] 속성 감시자 (Observed Properties) (0) | 2023.01.04 |
---|---|
[iOS/Swift] Class와 Struct (0) | 2022.12.28 |
[iOS/Swift] 고차함수 (0) | 2022.12.27 |
[iOS/Swift] inout 파라미터 (4) | 2022.12.27 |
[iOS/Swift] “ = “ 의미 (0) | 2022.12.26 |