[Swift 문법] 타입 선언

2na·2025년 5월 6일

Swift 🍎

목록 보기
2/9

✅ 타입선언

스위프트에서는 let, var로 상수&변수를 선언하게 되는데요.

let sopt
var ios

이렇게만 작성하면 Type Annotation missing이라는 에러가 나게 됩니다. 에러를 해결하기 위해서는 변수의 타입을 명시적으로 지정해주어야 합니다. 컴파일러가 변수, 상수의 자료형이 무엇인지 알게 하기 위해서 타입을 명시해주어야합니다.

타입을 명시해주는 방법에는 Type Annotation, Type Inference로 2가지 방법이 있습니다.

1) Type Inference (타입추론)

타입 추론이란, 선언과 동시에 값을 초기화하는 것입니다.

let name = "nayeon"

컴파일러는 초기화된 “nayeon”이라는 값을 보고 타입을 String이라고 추론하여, name의 타입을 String으로 지정해주는 것입니다.

타입추론에 문제점이 있다면, 원하는 타입으로 추론되지 않을 가능성이 존재한다는 것입니다. 예를 들어,

let num = 13.0

나는 float 변수를 원했는데, 컴파일러는 이 변수를 double로 추론하여 지정해버리는 문제가 발생하게 됩니다.

그외에도 초기값이 없는 경우에도 문제가 발생하는데, 이 경우에 Type Annotation을 사용합니다.

2) Type Annotation (타입 주석)

타입 주석이란, 변수 선언 시 직접 자료형을 지정해주는 방법입니다.

let 변수명: 자료형
var 변수명: 자료형

위의 형식처럼 콜론 뒤에 자료형을 명시합니다.

타입 추론과 다르게, 타입을 유추할 필요가 없기 때문에 초기값이 없어도 됩니다. 또한, 컴파일러가 타입을 추론하는 시간이 더 짧다는 장점이 있습니다.

✅ Type Alias

Alias는 별칭이라는 뜻을 가지고 있습니다. 말 그대로 Type Alias는 타입에 붙일 수 있는 별칭, 약칭입니다.

주의할 점은, Type Alias는 새로운 타입을 만드는 것이 아닌, 기존 타입에 별명을 붙여 새로운 이름으로 부를 수 있게 한것입니다. 이렇게 사용하는 이유는 코드를 좀 더 간결하고, 가독성있게 작성하기 위해서입니다.

typealias 별명 = 기존타입

TypeAlias를 사용하는 방법에는 다양한 유형이 있습니다.

1) 기본 타입에 사용

typealias Name = String
let name: Name = "nayeon"

2) 사용자 정의 타입에 사용

class Student { ... }
typealias Students = Array<Student> 
var arrStudents: Students = [] //Array<Student> 대신 사용

3) 클로저에 사용

func saveData(success: ((Int) -> Int)?,
              failure: ((Error) -> Void)?,
              progress: ((Double) -> Void)?) {
}

이런 복잡한 형식의 클로저를

typealias Success = (Int) -> Int
typealias Failure = (Error) -> Void
typealias Progress = (Double) -> Void

func saveData(success: Success?,
              failure: Failure?,
              progress: Progress?) {
    // code ...
}

typealias 선언을 통해 간단하게 바꿀 수 있습니다.

4) 프로토콜에 사용

여러개의 프로토콜을 채택하는 경우, 프로토콜을 결합한 typealias를 선언하여 간결하게 코드를 작성할 수 있습니다.

profile
Studying Frontend 👩🏻‍💻

0개의 댓글