- Swift - 상수와 변수
03. 상수와 변수
:: 상수와 변수 ::
1. 상수와 변수 선언
- let : 상수 선언 키워드
- var : 변수 선언 키워드
// 상수와 변수 선언
let 상수이름: 타입 = 값
var 변수이름: 타입 = 값
// 값의 타입이 명확하다면 타입 생략 가능
let 상수이름 = 값
var 변수이름 = 값
// 상수와 변수 활용
let constant: String = "차후에 변경이 불가능한 상수 let"
var variable: String = "차후에 변경이 가능한 변수 var"
variable = "변수는 이렇게 차후에 다른 값을 할당할 수 있지만"
// constant = "상수는 차후에 값을 변경할 수 없습니다" // 오류발생
2. 상수 선언 후, 값 할당하기
- 선언을 한 뒤, 나중에 값을 할당하려는 상수나 변수는 반드시 타입을 명시해야 합니다.
let sum: Int
let inputA: Int = 100
let inputB: Int = 200
// 선언 후 첫 할당
sum = inputA + inputB
// sum = 1 // 그 이후에는 다시 값을 바꿀 수 없습니다, 오류발생
// 변수도 물론 차후에 할당하는 것이 가능합니다
var nickName: String
nickName = "yagom"
// 변수는 차후에 다시 다른 값을 할당해도 문제가 없지요
nickName = "야곰"
3. 생각해보기
다음과 같은 경우에 각 값은 상수와 변수 중 어느 것으로 선언하는 것이 더 좋을지 생각해 봅시다.
OOO name = "yagom"
OOO numberToAdd = 5
OOO pi = 3.14159
OOO maxItemCount = 1000

- 예제 소스파일 링크
https://goo.gl
- 03. 상수와 변수

- <강좌 추천> 예비 개발자의 좋은 시작, [부스트코스 : iOS 프로그래밍] 입니다.
http://www.edwith.org
- 부스트코스는 NAVER 계열사 등과 함께 만들어가는 현장 중심 온라인 교육 프로그램입니다.
현업전문가들이 고민하여 만들고 1:1 코드리뷰도 받을 수 있는 부스트코스에서 기업이 원하는 유능한 개발자로 boost하세요.
comment
numberToAdd 와 pi 는 상수로, 나머지는 변수로 선언 하는것이 좋아보입니다.
처음에는 name 같은 경우는 상수로 선언 하는 것이 좋다고 생각했는데,
사실상 어떠한 용도로 쓰느냐? 그 목적이 더 중요한건 같은 기분이 들었습니다. 대신, pi 같은 경우는 확실히 상수가 맞을것 같군요
다른 값을 넣어도 기능적으로 문제가 생기지 않는 경우는 변수로, 그렇지 않을 때는 상수로 선언하는 것이 좋습니다.
name과 numberToAdd는 변수로 선언하고, 고정적인 값을 가지는 pi는 상수로 선언하고, maxItemCount가 조건이나 반복문의 제어 요소로 사용된다면 상수로, 단순히 아이템의 최대 갯수를 세는 용도라면 변수로 선언하면 될 것 같습니다 :)
변수명으로 보았을 때 name과 pi는 차후에 바뀌지 않을 값이기 때문에 상수로 선언하는 것이 좋고,
numberToAdd와 maxItemCount는 값이 바뀔 것이기 때문에 변수로 선언하는 것이 좋습니다.
OOO name = "yagom" => 상수
OOO numberToAdd = 5 =>변수
OOO pi = 3.14159 =>상수
OOO maxItemCount = 1000 =>변수
상수는 절대적인 값을 갖는다...
변수는 변할 수 있다...
리액트에서는 const가 상수로 사용되고 let이 변수였는데 스위프트는 let이 상수네요 ㅋㅋ신기합니다
이름과 maxItemCount는 상황에 따라 가변, 불변 모든 형태에서 사용이 가능하므로 초기에 var로 설정하는 것이 좋아보인다.
numbertoadd는 주로 가변이므로 var로 설정한다. 파이는 불변의 값이므로 let으로 설정한다.
파이(PI)와 같은 경우는 불변의 값이기 때문에 상수를 사용하고, 덧셈에 사용될 값이자 계속 변하는 numberToAdd는 변수로 지정합니다. maxItemCount의 경우는 어떠한 상황인지에 따라 다를 것 같은데, 전체 아이템의 갯수가 1000개이고 그중 특정 아이템의갯수를 카운팅하는 상황일 때, 이 maxItemCount가 특정 아이템의 카운팅된 값과 비교하여 에러를 탐지할때 사용된다고 가정한다면 상수가 옳을 것 같습니다. 이름의 경우엔 저값이 구조체나 클래스 객체의 이름으로 저장될땐 상수로 지정되어야 하고, name이라는 변수를 통해 프로그램이 사용자로부터 이름에대한 입력을 받아들인다면 변수로 사용되어야 합니다.
상수 name
변수 numberToAdd
상수 pi
변수 maxItemCount
일단 numberToAdd와 maxItemCount는 변수명 또는 상수명으로부터 변경될것이라는 것을 암시하므로
var을 사용하고
pie값은 불변이므로 let을 사용하는것이 맞는것 같습니다.
name 관련해서는 웬만하면 변경될 일이 없기에
let으로 하는것이 맞는것 같습니다.