Skip to main content

타입 애너테이션과 타입 추론

스위프트는 데이터 타입이 안전한 프로그래밍에 속합니다. 즉 변수의 데이터 타입이 한번 정해지면 그 변수는 다른타입의 데이터를 저장하는데 사용될 수 없으며, 컴파일 에러가 발생하게 됩니다. 이와 반대로, 데이터 타입이 느슨한 프로그래밍 언어는 변수를 선언한 후에 다른 데이터 타입을 저장할 수 있는 언어입니다.

상수 또는 변수의 타입을 지정하는 방법에는 두가지가 있습니다. 하나는 변수나 상수를 선언할 떄 타입애너테이션을 사용하는 것이다. 이것은 변수나 상수 이름 뒤에 콜론을 쓰고 타입을 선언하는 것입니다. 예를 들어 아래는 문자형 변수를 선언한 것입니다.

var junha: String = "junha"

선언부에서 타입 애너테이션이 없다면 스위프트 컴파일러는 타입 추론이라는 기술을 사용하게 됩니다. 컴파일러가 타입 추촌을 사용하게 되면 변수 또는 상수가 초기화되는 시점에 할당된 값의 타입이 무엇인지를 판단하여 해당 타입으로 지정한다.

var junha = "junha"
var junhaAge = 19.8

위 코드를 Swift에서 컴파일하게 된다면 모든 부동소수점의 수에 대해서 Swift는 Double이 디폴트이기 때문에 Double로 타입을 저장합니다. 그리고 junha는 Sting으로 저장을 하게 됩니다.

타입 애너테이션 없이 상수를 선언하게 될 경우에는 반드시 선언 지점에서 값을 할당해야합니다. 하지만 만약에 상수를 선언할 떄 타입 애너티이션을 사용하면 아래의 예제처럼 사용할 수 있습니다.

let message: String
// message는 나중에 값이 할당될 수 있습니다.

message = "Hello, Swift!"
// 이제 message에 값이 할당되었습니다.

print(message) // 출력: Hello, Swift!

여기서 제일 중요한 것을 알아야하는데요 그것은 상수에 값을 할당하는 것은 오직 한번 뿐이라는 것입니다. 값을 할당한 상수에 다시 값을 할당하려고 하면 구문에서 오류가 납니다.