상수, 변수가 뭘까요?
사용자의 로그인 시도 횟수를 추적하기 위해
상수와 변수를 사용하는 방법을
예시로 들어보겠습니다.
let maximumNumberOfLoginAttempts = 10
var currentLoginAttempt = 0
위 코드에서
let 은 상수이고,
var 는 변수입니다.
정리 : let = 상수, var = 변수
아직 이해가 안갑니다.
조금 더 풀어보겠습니다.
let maximumNumberOfLoginAttempts = 10
상수 최대 로그인 시도 횟수 = 10
var currentLoginAttempt = 0
변수 현재 로그인 시도 = 0
상수 : 상수값은 한번 설정되면 변경할 수 없습니다.
허용되는 최대 로그인 시도 횟수는 10, 최대값이 변경되지 않습니다.
고로 상수(let)로 선언 합니다.
변수 : 나중에 다른 값으로 설정할 수 있습니다.
var로 적은 이유, 즉 변수로 선언한 이유는 로그인 시도가 실패할 때마다 증가해야 하기 때문입니다.
예시 2
기존 변수의 값을 호환 가능한 유형의 다른 값으로 변경할 수 있습니다.
var friendlyWelcome = "Hello!"
friendlyWelcome = "Bonjour!"
// friendlyWelcome is now "Bonjour!"
변경완료!
변수와 달리 상수 값은 설정 후에 변경할 수 없습니다.
let languageName = "Swift"
languageName = "Swift++"
// This is a compile-time error: languageName cannot be changed.
에러ㅜㅜ
정리 : 변경할 수 없는 상수값, 다른 값으로 설정할 수 있는 변수
다른 특징에는
이렇게 쉼표로 구분하여 한 줄에 여러 상수 또는 변수를 선언할 수도 있습니다.
var x = 0.0, y = 0.0, z = 0.0
다만 아래와 같이 쓴다면 컴파일러는 변수 또는 상수가 어떤 자료형인지 알 수 없습니다.
let name
var age
자료형을 명시하는 방법에는 2가지가 있습니다.
let name = "Donkey"
위와 같이 선언과 동시에 초기화 를 해주는, 즉
컴파일러가 초기화된 값”Donkey”를 보고 타입을 추론하는 것
“Donkey”는 String값이니 컴파일러는 이 값을 String라고 추론, 타입을 지정합니다.
장점
간단합니다.
단점
var welcomeMessage: String
상수 또는 변수를 선언시 직접 자료형을 지정 합니다.
let/var 변수명: 자료형
장점
타입 추론, 타입 어노테이션 비교
let num = 17.0
let num2: Float = 17.0
type(of: num) Double.Type
type(of: num2) Float.Type
타입 어노테이션으로 설정한 경우 Float을 얻을 수 있습니다
자료출처 https://babbab2.tistory.com/14