-
Value Type과 Reference Type 이란Swift 2021. 4. 20. 15:50
Value Type 에는 Structure, Enumeration, Tuple
Reference Type에는 Class, Closure 가 있습니다.
아래의 예시로 정리가 되면 좋을것 같네요...!
예시 )
아래 두가지 타입을 선언
struct valueTest { var a = 0.0 } class referenceTest { var a = 0.0 }
Value Type
var value = valueTest() // stack에 저장 var value2 = value // 값 복사, 서로다른 instance 로 메모리에 저장됨
Reference Type
var object = referenceTest() // stack 과 heap에 저장 (stack에는 heap 메모리 주소가, heap에는 값이 저장됨) var object2 = object // 값 공유
내가 정리한 개념
class struct reference type value type 공유 복사 상속 가능 상속 불가능 하나의 객체가 필요하고 여러 대상에 의해 접근되고 변경이 필요한 경우 multi thread에 안전하고, 속도가 더 빠릅니다.(stack에 저장) + 혹시 그러면 참조 type의 경우 연산자를 사용할때도 stack에 있는 값으로 비교할까요? 아닙니다.
오히려 주소값을 비교하기 위해서는 (===, !== 를 사용해요)
잘 이해해두면 나중에도 정리된 상태로 설명할 수 있습니다.
728x90'Swift' 카테고리의 다른 글
Multiple commands produce Error 해결방법 (0) 2021.04.21 ARC란 (0) 2021.04.21 DTO, VO란 (Swift 버전) (0) 2021.04.20 Xcode 빠른 빌드가 필요할때 - diagnostic-options 와 그외 (0) 2021.04.20 SwiftLint 적용하기 (0) 2021.04.19