English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
이 기사에서는 Swift의 타입 애리어스와 그 용례를 배울 것입니다.
타입 애리어스는 프로그램에서 기존데이터 타입새로운 이름을 제공합니다. 타입 애리어스를 선언한 후, 전체 프로그램에서 이别名을 기존 타입 대신 사용할 수 있습니다.
타입 애리어스는 새로운 타입을 생성하지 않습니다. 그들은 단지 기존 타입에 새로운 이름을 제공합니다.
typealias의 주요 목적은 코드의 가독성을 높이고, 사람이 이해하기 쉽게 하기 위해 상황에서 더 명확하게 만드는 것입니다.
typealias 키워드를 사용하여 선언합니다:
typealias name = existing type
Swift에서 대부분의 타입은 typealias를 사용할 수 있습니다. 그들은 다음과 같을 수 있습니다:
내장 타입(예: String, Int)
사용자 정의 타입(예: 클래스, 구조체, 열거형)
복잡한 타입(예: 클로저)
typealias는 String, Int, Float 등 모든 내장 데이터 타입에 사용할 수 있습니다.
예를 들어:
typealias StudentName = String
위의 선언은 다음과 같은 허용합니다
let name:StudentName = "Jack"
typealias를 사용하지 않으면, string 타입의 상수를 다음과 같이 선언해야 합니다:
let name:String = "Jack"
위 두 예제에서, String 타입의 상수를 생성했습니다. 그러나 typealias를 사용하여 선언하면 코드가 더 가독적이 됩니다.
많은 경우에, 자신의 데이터 타입을 생성해야 합니다. 예를 들어, Student를 표현하는 타입을 생성하려면 다음과 같은 클래스를 사용할 수 있습니다:
class Student { }
이제, 학생 집합을 배열로 표현할 수 있습니다:
var students:Array<Student> = []
Array<Student>를 위해 자신의 타입을 생성하여 위의 선언을 더 가독적으로 만들 수 있습니다:
typealias Students = Array<Student>
지금, 코드의 가독성을 높일 수 있습니다:
var students:Students = []
한 가지 다른 예제를 분석해 보겠습니다. 예를 들어, 클로저를 입력 매개변수로 사용하는 메서드가 있습니다.
클로저에 대해 잘 알지 못하신다면 걱정하지 마세요. 그냥 특별한 함수로 생각하면 됩니다.
func someMethod(oncomp: (Int)-> (String){ }
위의 예제는 someMethod의 입력으로 클로저를 사용합니다. 클로저는 Int 값을 받아 String을 반환합니다.
보통 (Int)-> (String)의 사용은 개발자에게는 의미가 없습니다. 그러나 typealias를 사용하여 새로운 이름을 제공할 수 있습니다:
typealias CompletionHandler = (Int)-> (String)
지금, 메서드를 다시 작성할 수 있습니다:
func someMethod(oncomp: CompletionHandler){ }
typealias를 사용하면 코드가 더 명확하게 보이고 개발자에게 친화적이게 됩니다.