스위프트에서 변수와 상수는 반드시 먼저 선언한 다음에 사용해야 한다.
컴파일러에게 나 이러한 이름의 상수나 변수를 사용하겠다를 알려주기 위함이다.
변수와 상수를 선언하려면 키워드를 사용한다
변수를 선언할때 : var + 변수명
상수를 선언할때: let + 상수명
변수 선언과 초기화 예시
var year = 1995 // 정수형 변수
var messager = "Hello, World" // 문자열 변수
var 키워드로 선언된 변수에 처음으로 값을 대입하는 과정을 초기화(Initialize)라고 한다.
대입연산자 ' = ' 를 이용
스위프트는 대부분 초기화 과정에서 변수의 타입이 결정되고,
이때 일을 많이 하는 게 컴파일러이다.
컴파일러는 변수에 대입될 값을 검토하여 가장 적절한 타입을 추론하고
그에 맞는 메모리 공간을 확보한 다음, 여기에 값을 저장한다.
이떄부터 해당 변수를 우리는 사용할 수 있게 된다.
타입에 따라 필요한 메모리 공간이 다르기 때문에 변수타입을 결정하는 과정은 중요하다.
이 떄문에 스위프트는 ' 타입 추론기' 라는 모듈을 컴파일러에 별도로 내장하여 , 항상 최적의 타입을 결정하고자 한다.
직접 변수의 타입을 지정하고 싶어하는 분들 위해서 ' 타입 어노테이션(Type Annotation)' 이라는 기능을 제공하기도 한다.
이로 인해 스위프트는 동적 바인딩으로 착각 할 수 있지만 정적 바인딩입니다.
변수의 경우 선언과 초기화를 분리 할 수 있다.
선언만 먼저 해놓고 필요한 시점에 초기화해도 된다.
하지만 상수는 선언과 초기화가 동시에 이루어져야 된다.
(단, 클래스와 구조체를 다룰때에는 선언과 초기화가 분리될 수 있다.)
변수의 경우 선언과 초기화를 분리한 구문
var year : Int // 변수 선언
year = 1995 //선언된 변수의 초기화
TMI
1. 종종 ' = ' 연산자와 초기값 사이에 가독성을 위해 공백을 두기도 한다. 상관없다.
스위프트에서는 연산자 바로 뒤에 연이어 나오는 공백을 모두 무시함.
단 , 공백 여부는 연산자의 앞과 뒤에 모두 동일하게 적용되어야 한다.
let birthYear =1995 // 이렇게 하면 안돼~
let birthYear=1995 // 이렇게 하면 안돼~
let birthYear = 1995 // 이렇게만 돼~
2. 타입 추론과 타입어노테이션
타입 추론은 초기값을 지정해야 하며 적절한 타입을 추론하지만,
1)추론한 타입이 원하는 타입이 아닐 수 있다. 더큰 범위의 자료형을 지정해버리기 때문이다
Ex) Float -> Double , Character -> String
2)초기값이 없으면 사용할 수 없다.
타입어노테이션은 자료형을 지정해 주어야 하고 위에 문제점이 생겼을시 보통 사용한다.
꼼꼼한 재은씨의 스위프트: 문법편을 공부하면서 막 적는 낙서장
'Swift랑 친해지기 > Swift 책보면서 정리해보기' 카테고리의 다른 글
Int - 기본자료형 (0) | 2022.01.11 |
---|---|
자료형 (0) | 2022.01.11 |
변수와 상수의 이름 정의하기 (0) | 2022.01.10 |
변수와 상수 (0) | 2022.01.07 |
스위프트 기초 문법 (2) | 2022.01.07 |