본문 바로가기

Swift 문법

[Swift] 변수와 타입

변수는 어떠한 메모리 공간의 이름이다.
그리고 코딩의 대부분 과정에서 변수가 활용된다.

하나의 예로 어플을 실행시키면, 
CPU와 RAM이 최초로 하는 작업은 값을 메모리에 저장하는 일이다.

 

RAM의 메모리에는 값(데이터)를 담을 수 있는 상자들이 있다.

 

그리고 ‘변수’는 RAM의 데이터 상자의 이름이라고 생각하면 된다.

코드를 예로 들어보겠다.

var something = 1

‘something’이라는 데이터 상자에 ‘1’이라는 값을 할당했다.

 

 

var와 let

변수명 앞에는 ‘var’ 또는 ‘let’ 키워드를 명시해주어야 한다.

 

var로 선언한다면 데이터 상자에 담는 값이 바뀌어도 된다.

이 때, 데이터 상자를 ‘변수'라고 부르며 데이터를 ‘mutable’하다고도 한다.

 

let으로 선언한다면 데이터 상자에 담는 값은 절대 바뀌면 안된다.

즉 한번 데이터 상자에 넣은 값을 다른 값으로 바꿀 수 없다.

이 때, 데이터 상자를 ‘상수'라고 부르며 데이터를 ‘immutable’하다고도 한다.

 

변수와 상수는 엄연히 다르지만, 데이터 할당 차원에서 통합적으로 ‘변수'라고 부른다.

 

참고로 한번에 여러 변수로 선언 및 할당이 가능하고, 문자열을 보간할 수 있다.

var a = 1, b = 2, c = 3 // let도 가능

let sentence = "문자열 보간법, \\(a), \\(b), \\(c)"

 

타입

Swift에서는 변수 선언 시 타입을 명시해야 한다.

메모리 공간에서 데이터를 어떤 형태로 얼만큼의 용량으로 저장할 것인지에 대한 약속이기 때문이다.

 

타입은 여러개 있지만, 그중에서 중요한 타입은 4가지이다.

Int(정수형), Double(소수형), String(문자열형), Bool(참/거짓형)

 

타입을 명시하는 일은 매우 중요한데, 그 이유 중 하나는 동일한 타입끼리만 연산이 가능하다는 것이다.

타입 주석은 다음과 같다.

var number: Int = 2

var something: String
something = "무언가"

var number2 = 2.3

여기에서 이상한 점이 있는데 세 번째 변수에서는 타입 주석을 하지 않았다.

하지만 코드는 오류없이 정상작동한다.

 

그 이유는 Swift에서는 타입 추론이 가능하기 때문이다.

타입을 지정하지 않아도, 컴파일러가 값을 참고하여 자동으로 타입을 추론해준다.

 

주의해야할 점은 몇몇 경우에서 Int와 Double 타입의 구분을 명확히 해야한다.

var number = 1
var number2 = 1.5

위의 두 변수를 더하려고 시도하면 오류가 발생한다.

타입이 다르기 때문이다.

 

따라서 다음과 같이 수정할 수 있다.

var number: Double = 1
var number2 = 1.5

또는

var number = 1.0
var number2 = 1.5

 

 

 

참고

  • 형변환
let str = "123" // Int, Double로의 형변환은 문자열이 숫자로만 이루어져 있을 때만 가능
let number = Int(str)
let double = double(number)
  • 타입 애일리언스 : 수학에서의 치환과 동일, 새로운 타입을 직접 커스텀하여 사용 가능
typealias Name = String
let someName: Name = "홍길동"

'Swift 문법' 카테고리의 다른 글

[Swift] Enum(열거형)  (0) 2022.07.16
[Swift] 함수  (0) 2022.07.15
[Swift] 튜플  (0) 2022.07.14
[Swift] Switch문  (0) 2022.07.13
[Swift] 연산자 팁  (0) 2022.07.12