타입 추론 [ 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
이다.
컴파일러가 초깃값을 보고 자료형을 유추할 때,
위의 사례와 같이 애매한 경우에는
좀 더 큰 범위의 자료형으로 지정한다.
초깃값이 없는 경우에는 자료형을 유추할 수 없기 때문에
타입 추론 방식을 쓸 수 없다.
타입 어노테이션은
직접 자료형을 지정해주는 것이다.
// example
let name: String
타입 추론 방식에서 해결하지 못했던
원하는 자료형을 얻지 못하는 경우나 초깃값이 없는 경우를
해결할 수 있다.
더불어, 타입 어노테이션의 장점은 빠르다는 것이다.
타입 추론 방식은 컴파일러가 자료형을 추론하는 과정이 필요하기 때문에, 비교적 시간이 더 걸린다.
📚 Reference
Swift) 타입 추론(Type Inference) vs. 타입 어노테이션(Type Annotation)