변수(Variable)와 상수(Constant)
변수와 상수는 무엇일까요? 변수는 여러 가지 값으로 변할 수 있는 수를 말합니다. 그러면 상수는 무엇일까요? 변하지 않고 항상 같은 값을 가지는 수를 말한다. 이것이 사전적인 의미입니다. 그렇다면 소스 코드에서의 변수란 프로그램 실행 도중에 값이 변경될 수 있는 것을 의미합니다. 상수는 변하지 않고 항상 같은 값을 가지는 수를 의미하기 때문에 프로그램 실행 도중에 변경될 수 없겠죠.
var vs. let
swift를 접하게 되면 var와 let을 접하게 됩니다. 저도 처음에 보고 생소하였는데요. swift에서는 var 키워드를 사용해서 만든 것을 변수(Variable)라고 하고 let 키워드를 사용해서 만든 것을 상수(Constant)라고 합니다.
기본적으로 코드를 짤 때에는 변수를 선언을 합니다. 변수는 어떠한 값을 담을 수 있는 공간 혹은 박스라고 생각해주어도 되는데요. 기본적으로 비어있는 공간에 내가 원하는 값을 넣어 줄 수 있습니다. 이때에 var키워드를 이용해서 선언을 했을 경우에는 내가 만든 공간에 있는 값을 계속 변경을 할 수 있게 됩니다. 즉 Variable인 변수가 되는 것이죠.
let키워드를 이용해서 공간을 만든 경우에는 처음에 비어있는 공간에 내가 처음 입력 해준 값. 즉 초기화된 값으로 상수 화가 되어서 더 이상 변경을 할 수 없게 됩니다. 더 이상 변하지 않고 항상 같은 값을 지니기 때문에 상수인 것이죠.
var 키워드를 이용해서 선언한 박스의 경우 동그라미를 세모로 변경할 수 있지만 let키워드를 이용해서 선언한 박스의 경우 동그라미가 박스에 담기게 되고 나서는 동그라미를 빼고 세모를 채워 넣을 수 없게 됩니다.
let으로 선언한 Shapes에 "triangle"로 값을 넣어주려고 하니 에러가 발생합니다. 에러를 한 번 확인해 봅시다.
Cannot assign to value: 'Shapes' is a 'let' constant
할당을 할 수 없다고 하면서 상수 constant라고 알려주고 있습니다.
어떤 것을 주로 사용해야 할까?
언제 어떻게 어디에서 바뀔지 모르는 var 키워드 변수 variable 보다는 let 키워드를 이용해서 선언한 constant를 될 수 있으면 사용하는 게 좋습니다.