Swift/문법

스위프트(Swift) - 변수와 상수

josee2 2022. 4. 19. 14:26

 

변수와 상수의 정의

상수 : 한 번 저장된 값을 변경할 수 없음

변수 : 저장된 값을 필요에 따라 얼마든지 다른 값으로 변경할 수 있음

// 변수선언
var + 변수명

var year = 2022        // 정수형 변수
var month = "January"  // 문자열 변수

// 상수 선언
let + 상수명

let birthYear = 1997       // 정수형 상수
let welcomeMsg = "어서오세요" // 문자열 상수

 

스위프트에서 변수의 경우 선언과 초기화를 분리할 수 있다.

하지만 상수의 경우 선언과 초기화가 동시에 이루어져야 한다. (예외 존재)

// 선언과 초기화 분리
var year: Int // 변수선언
year = 2022

// :Int 는 타입 어노테이션이라는 문법으로 선언과 초기화를 분리해서 나타낼 때 표시해줘야한다.

 

 

변수의 경우 값을 변경해도 오류가 발생하지 않지만 상수의 경우 값을 변경하면 오류가 발생한다.

// 변수의 값 변경
var vValue = 15
vValue = 7             // ( O )

// 상수의 값 변경
let constantValue = 20
constantValue = 12     // ( X ) 상수는 한 번 정의하면 변경불가

 

변수의 값이 바뀌는 것은 같은 타입일 경우에만 가능하다.

// 변수의 선언 및 초기화
var iValue = 2       // Int 타입으로 초기화
var sValue = "Hello" // String 타입으로 초기화

// 값 변경
iValue = "안녕"       // Int 타입 String 타입으로 변경  >>  ( X )
sValue = 20          // String 타입 Int 타입으로 변경  >>  ( X )

변수와 상수의 이름 정의

스위프트에서 변수와 상수의 이름은 정하는데 자유도가 매우 높은편이다. 다음과 같은 규칙을 가지고 있다.

 

  1. 알파벳과 한글 자음 및 모음, 아라비아 숫자를 사용할 수 있고 특수 기호와 한자, 이미지용 바이너리 코드까지 사용 가능하다.
  2. 연산자와 혼동할 수 있는 +, -, *, / 와 공백은 변수, 상수명에 사용할 수 없다.
  3. 스위프트에서 예약어나 키워드로 등록되어있는 단어는 변수나 상수명에 사용할 수 없다. 단, 대소문자를 바꾸어 사용하는 것은 가능하다. (스위프트는 대문자와 소문자를 구분하기 때문)
  4. 변수, 상수명의 첫 번째 자리에 숫자가 올 수 없다. 

 

1번 같은 경우 확실히 스위프트가 다른 언어들과 비교해 자유도가 높은 편이다. 한글, 한자 뿐만 아니라 바이너리(😂,😭,😊 같은)까지 변수의 이름으로 사용이 가능하기 때문이다. 하지만 가독성만 떨어질뿐이고 변수나 상수명은 역시 영어로 정의하는 것이 바람직해 보인다.

 


출처 : 꼼꼼한 재은씨의 Swift 문법편