본문 바로가기
iOS/Swift

[iOS/Swift] 저장공간, 변수와 상수

by iosdevlime 2022. 10. 27.

변수와 상수란?

Swift를 학습하면서 가장 기초가 되는 부분인 변수와 상수는
데이터를 저장하기 위한 "예약된 메모리 내 위치값" 으로 해석할 수 있습니다.

 

해당 공간에 값을 부여하고 저장하기에 앞서,
우리는 변수(Variable)나, 상수(Constant)에 이름을 할당하여 사용합니다.

 

이러한 변수와 상수를 생성하기 위해 고유의 키워드를 사용합니다.

 

 

 

변수(Variable)

  • 변수(Variable)란, 값을 변하도록 수정할 수 있는 저장공간입니다.
    • 변수는 값을 선언한 후, 사용자에 의해 수정이 가능합니다.
    • var 키워드를 통해 변수를 선언합니다.
// 👉🏻 기본형태 1 (일반)
var 변수명: 데이터 타입 = 값 

// 👉🏻 기본형태 2 (타입추론 --> 변수의 타입을 지정하지 않아도 컴파일러가 자동으로 인식)
var 변수명 = 값

 

더보기
// 예시 1 (선언 일반)

var age:Int = 29 // 데이터 타입 작성
var name = "LIME" // 타입추론
var hunger = false 


// 예시 2 (값 수정)

age = 30 // 출력값 : 30
name = "JASON" // 출력값 : "JASON"
hunger = true // true


// 예시 3 (새로운 변수로)

var nickname = name
nickname // 출력값 : "JASON" --> 가장 최근에 선언한 값이 호출


// 선언 예시 4 (선언 후 값 할당)

var nickname2: String
nickname2 = "LIME" // 출력값 : "LIME"
nickname2 = "JASON" // 출력값 : "JASON" --> 가장 최근에 선언한 값으로 할당

 

 

 

 

상수(Constant)

  • 상수(Constant)란 변수와 반대로 값이 변하지 않는 고정된 값입니다!
    • 상수는 값을 선언한 후, 데이터 값이 고정되어 수정이 불가능합니다.
    • let 키워드를 통해 변수를 선언합니다.
// 👉🏻 기본형태 1 (일반)
let 상수명: 데이터 타입 = 값 

// 👉🏻 기본형태 2 (타입추론)
let 상수명 = 값

 

더보기
// 선언 예시 1 (선언 일반)

let number:Int = 10 // 데이터 타입 작성
let address = "Seoul" // 타입추론
let human = true

// 선언 예시 2 (값 수정)

number = 15 // Error : Cannot assign to value
address = "Busan" // Error : Cannot assign to value
human = false // Error : Cannot assign to value


// 선언 예시 3 (새로운 상수로)

let favorNum = number
favorNum // 출력값 : 10

// 선언 예시 4 (선언 후 값 할당)

let nickname2: String

//nickname2 = "LIME"
//nickname2 = "JASON" // Error : Immutable value (변경할 수 없다)

 

 

 

 

변수 vs 상수

  • Swift에선 상수의 사용을 권장한다?
    • 언제, 어디서, 어떻게 값이 변경될지 모르는 변수보단 안전한 상수를 권장합니다.
    • 이는 개발 시 발생될 수 있는 실수를 줄이고가독성을 높이기 위해 필요합니다.

 

 

 

 

'iOS > Swift' 카테고리의 다른 글

[iOS/Swift] Optional, Swift의 꽃  (0) 2022.10.31
[iOS/Swift] Basic Data Type ②  (0) 2022.10.30
[iOS/Swift] Basic Data Type ➀  (0) 2022.10.30
[iOS/Swift] Type Annotations  (0) 2022.10.29
[iOS/Swift] Hello, Swift !  (0) 2022.10.27

댓글