2024.06.13 수정
변하지 않는 일정값
값에 이름을 부여 하는 것
ex) 디바이스의 전체 용량 표시 사용 가능
let 상수명 : 데이터타입 = 값
상수에 한번 값을 부여 할 수 있으며, 2번이상 대입하게 되면 오류가 발생함, 여러번 값을 대입하는 경우 변수 사용해야함
var name: Type = value
변수는 이름, 형, 메모리 주소, 값, 영역 등으로 특성을 구분
① 스위프트에서 미리 사용하고 있는 예약어 또는 키워드는 사용이 불가함
enum Sample {
case `class`
case `var`
case `let`
}
② 숫자로 시작되는 이름은 불가하지만 숫자가 포함된 이름은 가능하다
③ 변수의 이름에는 공백이 포함될 수 없다.
④ lowerCamelCase 규칙을 따름
var x: Int
var x: Int = 3
let name
var age
상수면 let 변수면 var 키워드를 사용하고,
옆에 변수명, 상수명을 붙혀주는 식으로 사용함
BUT! 저렇게만 쓰면 Type annotation missing in pattern 오류가 뜸
C나 Objective-C나 뭐 기타 좀 오래된 언어들의 선언 방식과 마찬가지로 Swift도 변수(상수)를 선언할 땐 컴파일러가 알 수 있게 Type을 명시해줘야함
이 자료형을 명시하는 방법 2가지가
let name = "jjoohee"
여기서 "jjoohee" 는 String값이기 때문에 컴파일러가 알아서 String겠구나 하고 추론하여 String타입으로 지정하는 것!
let name = "jjoohee"
type(of: name) // String.Type
ⓛ 직접 타입을 명시(Type Annotation) 해주지 않아도 됨
② Swift 언어 특성 중 하나인 "설계에 의한 안정성" 항목이 해당 됨
ⓛ 원하는 타입으로 추론되지 않는 경우
let num = 17.0 // float라고 하고 싶음
type(of: num) // Double.Type
let name = "A" // Character라고 하고 싶음
type(of: name) // String.Type
👆 위의 상황처럼 초기값을 보고 유추할 경우 자료형을 더 큰 범위의 자료형으로 지정해 버리기 때문에 100% 내가원하는 자료형으로 지정이 안될 수 있음.
Float -> Double, Character -> String
② 초기값이 없는 경우 추론을 사용할 수 없음
③ 가독성이 떨어짐
let/var 변수명: 자료형
let name : String
ⓛ 타입 추론으로 원하는 자료형을 얻지 못 할경우 사용할 수 있음
② 초기 값이 없을 경우 사용할 수 있음
③ 타입 추론은 컴파일러가 타입을 추론하는 과정에서 타입 명시보다 시간이 조금 더 걸림
주희님 벨로그로 옮기셨네요! ㅎㅎ 오늘 공부도 화이팅이에요💃🏻