오늘은 아주 기초적인 상수와 변수에 관하여 알아보고자 합니다
상수와 변수
(Constants and Variables)
let (=상수) | var(=변수) | |
특징 | 상수의 값은 최초 지정 후 변경이 불가능 | 변수의 경우 다른 값으로 변경이 가능 (하지만 변경하는 타입이 동일해야함) |
상수→ 변수 ❌
변수→ 상수 ❌
여기서 만약 변수를 상수로 사용하고 싶다면
변수를 새로운 상수에 재할당 하는 방식으로 변환할 수 있답니다
하지만 이 말이 무슨 말인지 모르겠죠?
코드를 차차 보면 제가 왜 이런 이야기를 했는지 이해가 가실겁니다 :)
그러니 2번 읽어보도록!!
쉽게 말해 데이터(자료)를 담을 수 있는 공간(바구니)라고 생각하면 됩니다
변수의 이름은 식별자나 한 영역에 유일한 하나의 이름으로 사용해야한답니다
상수의 값을 변경할 때 오류 발생
해결책 : 상수(let)을 변수(var)로 변경하면 됩니다
만약 로그인 시도 횟수 최댓값을 지정하고 싶을때는 상수(let)로 설정하고
현재 시도한 횟수의 경우엔 var로 설정하여 카운트를 증가시켜야하기 때문에 변수(var)로 선언하는게 맞습니다
여기서 잠깐!
변수(상수 + 변수), method, function, class, struct 등에 이름을 정할 때 첫 글자의 대소문자를 지켜줘야합니다
그래서 위에서 사과의 변수명을 살펴보았을때 'a' 소문자로 시작하는걸 알 수 있습니다
대문자 | 소문자 | |
제일 앞글자 대소문자 구별 | 클래스 / 구조체 / 프로토콜 등 (객체일 경우) |
함수 / 메서드 / 인스턴스명 |
변수의 이름(식별자)은 소문자로 시작(대문자로 시작하는건 권장 x)
중간에 숫자 들어가는건 괜찮음(숫자가 첫 글자로 시작하는것은 금지)
(_)언더바 권장하지 않음 예를들어 time_to_play(x) timeToPlay(o)
var (변수) 선언하기
보통 var number: Int에서
Int부분을 타입을 명시(Type Annotation)한다 라고 합니다
이런 경우 초기값을 세팅하지 않아도 되는게 장점이라고 생각합니다
반대로 명시하지않고 바로 값을 선언하는 경우
타입 추론(Type Inference)이라고 합니다
선언과 동시에 초기화를 해준다고 생각하면 편하답니다?
컴파일러가 알아서 추론한 값으로 지정을 하기 때문에 간단하게
선언하지 않고도 사용이 가능하답니다
여기서 한가지 더 알아야 하는 경우는
만약 200.0이나 "Z"로 타입추론을 한다면
보통 float,charater형으로 들어갈거라 생각하지만
땡!!! 아닙니다
컴파일러가 초기값을 보고 알아서 자료형을 유추할 때 애매할 경우
자료형을 더 큰 범위 자료형으로 지정해버려서
200.0 => Double
"Z" => String
타입을 선언하지 않아도 유추가 가능하기 때문에 그냥 사용해도 됩니다
그리고 중요한 점은 변수명을 지을때 알파벳과 한글 자음 모음 아라비아 숫자를 사용할 수 있지만
보통 영어와 숫자 그리고 _(언더바)정도만 사용하는 정도입니다
영어 + 숫자 (O)
숫자 + 영어 (X)
var와 let을 여러개 편하게 선언하고 싶어요!
짜잔~ 한 줄로 정리가 가능하답니다
그리고 타입명시하는것도 한 줄로 선언이 가능하답니다
정리하자면 let 변경이 불가능하고 var은 변경이 가능한 키워드 입니다 그리고 보통 변수명을 정할 때 영어와 숫자로 이루어져있으며 제일 앞에 대문자와 소문자를 유의해서 작성해야합니다 :)
끝으로 변수를 상수로 변경하고 싶다면?
var num: Int = 10
//이렇게 재 할당하여 사용을 해야합니다
let num1: Int = num
print(num) //10
print(num1) //10
//num = 변수이기 때문에 숫자 변경 가능
num = 20
print(num) //20
//오류가 발생하게됨
//왜? let(상수) 숫자 변경안됨
//num1 = 30
'Swift' 카테고리의 다른 글
Swift 공식문서| 제어 흐름 (Control Flow)에 관하여 - 반복문 for문 (0) | 2024.05.09 |
---|---|
Swift 공식문서| The Basic 기본연산자에 관하여 (0) | 2024.05.08 |
Swift 공식문서| The Basic 자료형에 관하여 - Bool / String / Character (0) | 2024.05.08 |
Swift 공식문서| The Basic 자료형에 관하여 - Float / Double (0) | 2024.05.08 |
Swift 공식문서| The Basic 자료형에 관하여 - Int / UInt (0) | 2024.05.08 |