intro) 프로퍼티

클래스, 구조체, 열거형과 관련한 값 Swift에서는 3가지 형태로 존재하는데 바로 저장 프로퍼티, 연산 프로퍼티, 타입 프로퍼티로 구성됨

1. 저장 프로퍼티

class Human {
	let name: String = "hidi"
  var age: Int = 200
}
struct Person {
	let name: String = "hidi"
   var age: Int = 200

1-1) 클래스에서 저장 프로퍼티

클래스는 인스턴스는 스택에는 인스턴스 주소만 저장하고 힙 영역에 instance 정보를 담고있다. 이 점을 생각하면서 비교해보면서 이해해보자!

i) 클래스 인스턴스를 let(상수)로 선언할 때

일단 당연히 인스턴스 자체를 바꾸는 건 안되겠죠? let으로 선언했으니까!

개발자 소들이님의 사진을 활용했습니다!

개발자 소들이님의 사진을 활용했습니다!

class Human {
	let name: String = "hidi"
  var age: Int = 200
}

let hidi: Human? = .init()
hidi?.name = "hidi" // 에러
hidi?.age = 24 // 가능!

// 따라서 인스턴스 값 자체에 nil이 들어가는 건 안됨
hidi = nil // error

ii) 클래스 인스턴스를 var(변수)로 선언할 때

var로 선언하면 인스턴스 값 자체를 바꿀 수 있습니다!