변수는 어떠한 메모리 공간의 이름이다.
그리고 코딩의 대부분 과정에서 변수가 활용된다.
하나의 예로 어플을 실행시키면,
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 |