[iOS] Type Inference vs. Type Annotation

타입 추론 [ Type Inference ]

타입 추론은
선언과 동시에 초기화를 해주는 것을 말한다.

// example1

let name = "Eugenie"

컴파일러가 초깃값을 보고 타입을 추론한다.

"Eugenie"String 타입이므로
컴파일러가 알아서 String 타입이라고 추론하고
추론한대로 타입을 지정한다.

❗️ 원하는 자료형으로 추론되지 않는 경우

// example2

let num = 8.8

print(type(of:num)) // Double

상수 num 의 타입은
Float 가 아닌 Double 이다.

// example3

let char = "A"

print(type(of:char)) // String

상수 char 의 자료형은
Character 가 아닌 String 이다.

컴파일러가 초깃값을 보고 자료형을 유추할 때,
위의 사례와 같이 애매한 경우에는
좀 더 큰 범위의 자료형으로 지정한다.

❗️ 초깃값이 없는 경우

초깃값이 없는 경우에는 자료형을 유추할 수 없기 때문에
타입 추론 방식을 쓸 수 없다.

타입 어노테이션 [ Type Annotation ]

타입 어노테이션은
직접 자료형을 지정해주는 것이다.

// example

let name: String

타입 추론 방식에서 해결하지 못했던
원하는 자료형을 얻지 못하는 경우나 초깃값이 없는 경우
해결할 수 있다.

더불어, 타입 어노테이션의 장점은 빠르다는 것이다.

타입 추론 방식은 컴파일러가 자료형을 추론하는 과정이 필요하기 때문에, 비교적 시간이 더 걸린다.


📚 Reference
Swift) 타입 추론(Type Inference) vs. 타입 어노테이션(Type Annotation)

좋은 웹페이지 즐겨찾기