ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 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 로 메모리에 저장됨

    stack에 값이 저장된다는 것을 보여주고 싶었음

    Reference Type

    var object = referenceTest() // stack 과 heap에 저장 (stack에는 heap 메모리 주소가, heap에는 값이 저장됨)
    var object2 = object // 값 공유

    이런식으로 저장되기때문에 reference를 저장하고, 복사 된다는 개념이라는것을 보여주고 싶었음

    내가 정리한 개념

    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

    댓글

Designed by Tistory.