Danny의 iOS 컨닝페이퍼
article thumbnail

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
profile

Danny의 iOS 컨닝페이퍼

@Danny's iOS

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!