1. 타입 명시 (Type Annotation)

앞에 변수와 상수 단원에서 배운 예시를 잠시 가져오면

var love: String = "사랑은 변하는 거야" let loveForever: String = "내 사랑은 영원해" 이런 식으로 콜론(:) 뒤에 타입을 써준 것을 볼 수 있다! 이것을 우리는 타입명시라고 부른다!

1-1. 타입 명시란?

: 상수 또는 변수를 선언할 때 저장할 수 있는 값의 종류를 명확하게 하기 위한 방법

이때 “: 타입”을 우리는 타입 주석이라고 부른다! (: 뒤에 한칸 띄우기!)

+) 값은 타입은 여러개의 연관된 변수를 콤마로 변수 이름을 구분하고 마지막에 타입 명시로 한 줄에 쓰기 가능하다

var myMoney: Int = 10000
var yourMoney, mamaMoney, papaMoney: Double

+) type(of: 변수명)

:를 통해서 변수의 타입을 알 수 있다.

2. 타임 안정성 & 타입 추론 (Type Safety and Type Inference)

그러면 음.. 만약 이렇게 쓰면 에러가 날까? var love = “찾았다 내 사랑~ 내가 찾던 사랑” → 변수는 이름과 타입을 연결해주는 기능을 해야되는데 타입을 안 알려줬으니까! 에러가 날꺼야! 하지만 에러는 나지 않는다. 그 이유는 무엇일까..?

2-1. 타입 안정성

Swift 공식문서를 보면 “Swift는 타입-세이프 (type-safe) 언어입니다.” 라고 명시하고 있다.

즉. 코드를 컴파일 할 때 타입 검사를 수행하고 일치하지 않는 타입을 오류로 표시한다. 그리고 이를 통해 개발 단계에서 가능한 빨리 오류를 포착하고 수정 가능하다.

→ 타입검사 시 타입 추론을 할 수 있다. (엥 그럼 타입 추론은 뭐지..?)

2-2. 타입 추론

: 필요한 값의 특정 타입을 지정하지 않으면 Swift는 적절한 타입으로 타입 유추를 함

→ 컴파일러는 코드를 컴파일 할 때 제공한 값을 검사하여 특정 식의 타입을 자동으로 유추 가능