-
swift - Value Type & Reference Typeswift 2021. 1. 13. 09:49
Value Type
값 형식은 항상 Stack에 저장되고 값을 전달할 때마다 새로운 복사본이 생성된다.
* swift 에서는 copy-only write 최적화를 사용하고 있어 살짝 다를 수 있는데 위와 같은 개념으로 알고 가도 괜찮
Reference Type
인스턴스를 생성하면 Stack과 Heap에 새로운 공간이 생성된다.
Heap에는 인스턴스가 저장되고 Stack에는 Heap 메모리 주소가 저장된다.
값 형식과 달리 인스턴스에 바로 접근 할 수 없고 항상 Stack을 거쳐서 접근한다.
두개의 인스턴스는 동일한 Heap 메모리 주소를 가리키기 때문에
let 키워드
비교 연산자
형식에 관계없이 항상 실제 값을 비교한다.
Value Type
stack에 저장된 값을 비교
Reference Type
Heap에 저장된 값을 비교
Stack에 저장된 주소 값을 비교할 때는 항등 연산자를 사용한다.
'swift' 카테고리의 다른 글
swift - Generic #2 (Generic Type) (0) 2021.01.13 swift - Generic #1 (Function, Constraints) (0) 2021.01.13 swift - Memory Basics (0) 2021.01.13 swift - Protocols #9 (Protocol Extension) (0) 2021.01.12 swift - Protocols #8 (Optional Protocol Requiredments) (0) 2021.01.12