Swift랑 친해지기/Swift 책보면서 정리해보기

변수와 상수를 정의하는 방법

데브킹덕 2022. 1. 7. 16:36

스위프트에서 변수와 상수는 반드시 먼저 선언한 다음에 사용해야 한다. 

컴파일러에게 나 이러한 이름의 상수나 변수를 사용하겠다를 알려주기 위함이다. 

 

변수와 상수를 선언하려면 키워드를 사용한다 

변수를 선언할때 : 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