Type Inference(타입 추론)
- 변수나 상수에 값을 할당할때 타입을 지정해주지 않으면 스위프트에서 자료형을 알아서 추론한다.
- 스위프트에서는 기본적으로 정수는 Int타입으로 추론하고 실수는 Double타입으로 추론한다.
let num = 123
type(of: num) // Int.Type, 초기값을 기준으로 알아서 타입 선언
let num1 = "123"
type(of: num1) // String.Type
let num2 = 0.23
type(of: num2) // Double.Type
let valid = true
type(of: valid) // Bool.Type
let valid1 = false
type(of: valid1) // Bool.Type
let value // error!! 값이 지정되어 있지 않기 때문에 형식 추론 불가능(초기값 반드시 필요)
Type Annotation(타입 지정)
- 변수나 상수에 값을 할당할때 개발자가 직접 자료형을 지정해준다.
- 컴파일 시간을 단축시키기 위해서 사용한다.
let num: Int = 123
let num1: Double = 0.123
let str: String = "ABC"
let ch: Character = "A"
let valid: Bool = true
Type Safety
- 스위프트는 자료형에 민감하게 반응하며 '안정성'을 중요시 한다.
- 변수나 상수에 값을 할당할때 직접 지정한 자료형과 할당될 값의 자료형이 다르면 에러가 발생한다.
let str: String = 123 // error!! String타입에 Int타입의 데이터 저장하기 때문에 에러
let num: Int = 0.123 // error!! Int타입에 Double타입의 데이터를 저장하기 때문에 에러