값타입
Struct, Enum, String, Dictionary, Set, Tuple
- 변수에 할당하면 스택 영역에 값이 저장됨
- 변수를 다른 변수에 복사한 후 복사본을 변경하더라도 원본에 영향을 주지 않는다
참조 타입
Class, Closure
- 스택 영역에는 포인터(레퍼런스)만 할당되고 실제 데이터는 힙 영역에 저장됨
- 변수를 복사하더라도 둘다 하나의 값을 가리키고 있어서 복사본과 원본이 모두 같은 값을 갖는다
- 변수를 복사하면 레퍼런스 카운트만 +1이 되고 실제 값이 복사되지는 않는다