Swift 변수(Variables)와 상수(Constants)
업데이트:
수식(Expression)
Swift에서 하나의 수식은 하나의 명령입니다. Swift 코드를 실행시키면 코드의 제일 윗줄의 수식부터 순차적으로 하나씩 실행해 나간다고 보시면 됩니다. (반드시 윗줄부터 순차적으로 실행되지는 않습니다. 하지만, 그 부분은 나중에 공부하게 될 것이고 일단 순차적으로 한줄씩 실행한다라고 보시면 됩니다.) 우선 아래의 코드를 보시죠.
var number: Int = 3
var add1 = number + 1
print(add1)
위 코드는 아래 3개의 수식으로 이루어져 있습니다.
- var number: Int = 3
- var add1 = number + 1
- print(add1)
각각의 수식이 어떤 기능을 하는 것인지는 이후에 다시 설명하겠습니다. 일단, 간단하게 하나의 수식은 하나의 기능을 수행한다 라고만 개념적으로 알고 계시면 좋을 것 같습니다. 여기서 굳이 길게 복잡한 이야기를 쓰고 싶지는 않아요.
변수(Variables)의 선언
Swift는 특정한 값을 메모리에 저장해 놓기 위해 변수라는 기능을 제공합니다. 변수를 사용하기 위해서는 우선 변수를 선언해야 합니다. 변수를 선언하게 되면 메모리의 특정 공간에 값을 저장해 놓기 위한 공간이 만들어진다고 보면 되며 변수를 선언하는 방법은 다음과 같습니다.
var number: Int
위 수식의 의미는 다음과 같습니다.
- var: 위 수식이 변수를 선언한다는 것을 의미합니다. 수식의 제일 앞에 ‘var’이 있으면 변수를 선언하는 것이구나 하시면 됩니다.
- number: 변수의 이름입니다.
- Int: 변수의 타입입니다. Int는 정수형 타입을 의미합니다. number라는 변수에는 (0, 1, 2, 3, …) 등 정수를 저장할 수 있다는 의미입니다.
위 수식이 실행되면 메모리 상에 정수를 저장할 수 있는 number라는 이름의 공간을 확보하게 되며 그 공간에는 필요할 때 정수를 저장해 놓을 수 있습니다.
변수(Variable)에 값 저장
위에서 설명한 바와 같이 변수에는 그 타입에 맞는 값을 자유롭게 저장할 수가 있습니다. 다음 코드를 보시죠.
var number: Int // number라는 이름의 변수를 선언
number = 10 // number라는 이름의 변수에 10이라는 정수를 저장
print(number) // number변수에 저장된 값을 출력
위 코드는 number라는 이름의 정수형 변수를 선언하고 거기에 10을 저장하는 코드입니다. 위와 같이 ‘=’을 사용하여 변수에 값을 저장할 수 있습니다.
참고로 위 코드에서 ‘//’ 뒤에 있는 설명은 주석이라고 합니다. 주석은 실제 실행되지 않습니다. 프로그램 개발 시 코드에 설명을 붙여넣고 싶을 때 ‘//’ 표시와 함께 설명을 붙여 놓으면 코드를 좀 더 이해하기 쉽게 만들 수 있습니다.
print(number)는 number 변수에 저장된 값을 콘솔에 출력해 줍니다.
위의 내용을 실습해 볼까요?
Xcode를 실행하면 나타나는 첫화면에서 Get started with a playgound 메뉴를 선택해 줍시다.
그 다음 나타나는 선택화면에서 그냥 Blank를 선택하고 Next 버튼을 선택합시다.
다음 프로젝트 이름과 저장할 경로를 정한 후 Create 버튼을 선택합시다.
그러면, 다음과 같은 화면이 나타날 것입니다.
자, 기본으로 작성되어 있는 코드를 지우고 위 샘플 코드를 에디터에 다음과 같이 작성 후 하단 Excute Playground 버튼을 선택해 봅시다.
그러면 다음 그림과 같이 Xcode 하단에 10이라는 결과가 출력될 것입니다.
저 10이라는 숫자는 위 소스에서 3번째 줄에 있는 print 함수에 의해 number에 저장된 값이 출력이 된 것입니다.
print(number) // number변수에 저장된 값을 출력
위와 같이 print는 ()안의 변수에 저장된 값을 화면에 출력해 줍니다.
변수(Variables)의 초기화
위에서 설명한 코드를 다시 살펴봅시다.
var number: Int // number라는 이름의 변수를 선언
number = 10 // number라는 이름의 변수에 10이라는 정수를 저장
선언된 변수에 처음 값을 저장하는 것을 ‘초기화’ 한다고 합니다.
위 코드의 첫번째 줄에서는 number라는 변수를 선언하고 있으며, 그 다음 줄에서 number에 저장된 값을 10으로 초기화하고 있습니다.
다음과 같이 변수를 초기화 하지 않고 다른 곳에서 사용을 하려고 하면 에러가 발생합니다.
var number: Int // number라는 이름의 변수를 선언
print(number) // Error 발생!!!
실제 Xcode에서 작성해 보죠.
위와 같이 변수를 초기화하지 않고 사용할 경우에는 “Variable ‘number’ used before being initialized” 에러가 발생합니다.
그런데, 위 예제처럼 변수의 선언과 초기화를 따로 하지 않고 한번에 할 수 있는 방법이 있습니다.
아래 코드를 보시죠.
var number: Int = 10 // number라는 이름의 변수를 선언 하고 10이라는 초기값을 저장
위와 같이 하면 선언과 초기화를 한번에 처리할 수 있습니다.
실제 코딩에서는 이렇게 한번에 하는 방법이 거의 사용됩니다.
타입의 생략
아래 코드를 다시 봅시다.
var number: Int = 10 // number라는 이름의 변수를 선언 하고 10이라는 초기값을 저장
위 코드는 number라는 변수를 선언하고 10을 저장하는 코드입니다. 그런데, 10이라는 숫자가 이미 정수이기 때문에 굳이 Int라고 타입을 같이 선언해 주지 않아도 number가 Int형이라는 것을 알 수 있습니다. 따라서, 위 수식은 다음의 코드처럼 축약할 수 있습니다.
var number = 10 // number라는 이름의 변수를 선언 하고 10이라는 초기값을 저장
위 코드에는 number라는 이름의 변수에 타입을 지정하고 있지 않지만 초기값 10이 정수이므로 number는 자동적으로 정수형 변수가 됩니다.
상수(Constants)
상수는 변수와 거의 동일하게 특정한 값을 저장해 두는 기능을 제공하지만, 변수와 다른 점은 한번 값을 저장하게 되면 다른 값으로 바꿀 수가 없는 특징을 가지고 있습니다.
상수의 선언 방법은 변수의 선언 방법과 거의 동일하며 다음과 같습니다.
let constant: Int // constant라는 이름의 상수를 선언
constant = 10 // constant에 10을 저장
constant = 20 // Error 발생!!! 상수의 값은 변경할 수 없음
위 수식은 constant 상수를 선언하고 10으로 초기화한 후에 20으로 값을 바꾸는 수식입니다. 그런데, 위 수식은 3번째 줄에서 에러가 납니다. 위에서 설명했듯이 상수의 값은 한번 정해지면 바꿀 수 없기 때문에 위 3번째 줄은 잘못된 수식입니다.
상수도 변수와 마찬가지로 선언과 초기화를 동시에 할 수 있고, 초기화하는 값의 타입이 명확하다면 선언 시 타입을 생략할 수 있습니다.
let constant: Int = 10 // constant라는 이름의 상수를 선언 후 10으로 초기화
let constant2 = 20 // constant2라는 이름의 상수를 선언 후 20으로 초기화
변수와 상수의 이름 짓기
다른 언어들에서는 일반적으로 변수와 상수의 이름을 알파벳과 숫자, 언더바(‘_‘)등을 이용해서만 짓는 것이 가능하도록 제약하고 있으나 Swift에서는 한글, 특수기호등을 이용해서도 이름을 짓는 것이 가능합니다.
하지만 일반적으로는 다른 언어들과 마찬가지로 알파벳과 숫자를 이용하여 이름을 짓는 것이 일반적이라고 보면됩니다.
알파벳과 숫자를 이용하여 이름을 짓되 첫글자를 숫자로 하면 안됩니다.
이외에 여러 규칙이 있지만 그냥 이것만 기억하세요. 알파벳과 숫자만 쓴다. 첫글자는 알파벳이어야 한다.
만약, 이 규칙을 지켰는데도 에러가 난다면 써서는 안되는 이미 예약된 단어이거나 동일한 이름의 변수가 있는 것이니 이름을 바꿔주면 됩니다.
마무리
여기까지 Swift의 변수와 상수에 대해 알아봤습니다.
다음은 자료형(타입)에 대해 포스팅 하도록 하겠습니다.
댓글남기기