🔥 타입 별칭

304자
4분

Swift는 타입 별칭(Type Aliases)을 사용하여 기존 타입에 대한 대체 이름을 정의할 수 있게 해줍니다. 우리는 typealias 키워드를 사용하여 타입 별칭을 정의할 수 있어요.

swift
typealias AudioSample = UInt16
swift
typealias AudioSample = UInt16

위의 코드는 AudioSampleUInt16의 별칭으로 정의했습니다. 우리는 이렇게 정의한 별칭을 원래 이름을 사용할 수 있는 모든 곳에서 사용할 수 있답니다.

타입 별칭은 외부 소스에서 가져온 특정 크기의 데이터를 다룰 때와 같이, 문맥상 더 적절한 이름으로 기존 타입을 참조하고 싶을 때 유용하게 사용할 수 있어요. 예를 들어, 오디오 데이터를 다루는 프로그램에서 UInt16 대신 AudioSample이라는 이름을 사용하면 코드의 가독성과 의미전달력이 훨씬 높아지겠죠?

swift
var maxAmplitudeFound = AudioSample.min
// maxAmplitudeFound의 값은 이제 0이 됩니다.
swift
var maxAmplitudeFound = AudioSample.min
// maxAmplitudeFound의 값은 이제 0이 됩니다.

위의 코드는 AudioSample.min을 호출하여 실제로는 UInt16.min을 호출합니다. 이렇게 호출된 UInt16.minmaxAmplitudeFound 변수에 초기값 0을 제공하게 되는 거예요.

우리는 타입 별칭을 사용하여 코드의 가독성과 명확성을 크게 향상시킬 수 있습니다. 특히, 복잡한 타입을 사용할 때 타입 별칭을 활용하면 코드를 더 간결하고 이해하기 쉽게 만들 수 있어요.

swift
typealias Coordinates = (Int, Int)
 
let location: Coordinates = (42, 73)
// location의 타입은 (Int, Int)의 별칭인 Coordinates입니다.
swift
typealias Coordinates = (Int, Int)
 
let location: Coordinates = (42, 73)
// location의 타입은 (Int, Int)의 별칭인 Coordinates입니다.

위의 코드는 Coordinates(Int, Int) 튜플 타입의 별칭으로 정의했어요. 우리는 이렇게 정의한 별칭을 사용하여 (Int, Int) 대신 Coordinates를 사용할 수 있게 되었고, 이는 코드의 의미를 훨씬 더 명확하게 만들어 줍니다.

타입 별칭은 또한 복잡한 제네릭 타입이나 중첩된 타입을 간단한 이름으로 참조할 수 있게 해줘요.

swift
typealias StringDictionary<Value> = Dictionary<String, Value>
 
var dictionary: StringDictionary<Int> = ["A": 1, "B": 2]
// dictionary의 타입은 Dictionary<String, Int>의 별칭인 StringDictionary<Int>입니다.
swift
typealias StringDictionary<Value> = Dictionary<String, Value>
 
var dictionary: StringDictionary<Int> = ["A": 1, "B": 2]
// dictionary의 타입은 Dictionary<String, Int>의 별칭인 StringDictionary<Int>입니다.

위의 코드는 StringDictionaryDictionary<String, Value>의 별칭으로 정의했습니다. 우리는 이렇게 정의한 별칭을 사용하여 Dictionary<String, Int> 대신 StringDictionary<Int>를 사용할 수 있게 되었어요. 이는 코드를 더 간결하고 가독성 좋게 만들어 준답니다.

타입 별칭은 Swift 코드에서 널리 사용되는 강력한 기능이에요. 우리는 적절한 타입 별칭을 사용하여 코드의 의미를 명확하게 전달하고, 복잡한 타입을 간단한 이름으로 참조할 수 있게 됩니다. 이는 코드의 가독성과 유지보수성을 크게 향상시켜 준답니다. 여러분도 타입 별칭을 적극 활용하여 더 나은 Swift 코드를 작성해 보세요!

YouTube 영상

채널 보기
Trie 자료구조 완전 정복 - 개념부터 시각화까지 | Trie 자료구조 이야기
AI를 위한 선형대수학 - 소개 | 선형대수학
트라이(Trie)를 이용한 자동 완성 알고리즘 | Trie 자료구조 이야기
AI는 왜 수백 차원의 벡터를 사용할까? 고차원 공간과 행렬 | 선형대수학
벡터의 정의와 덧셈 연산 | 선형대수학
마지막편, 트라이 노드를 50% 이상 줄이는 방법? 압축 트라이 성능 분석 | Trie 자료구조 이야기
우리가 매일 쓰는 맞춤법 검사기와 라우터 속에 숨겨진 알고리즘은? | Trie 자료구조 이야기
내적의 기하학적 의미와 코사인 유사도 원리 | 선형대수학