ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 참조 비교 연산자 ===
    Swift 2021. 8. 28. 12:01

     

    스위프트에서 연산자 === 는 참조값을 비교해주는 연산자입니다.

    클래스 인스턴스인 A와 B에 대해 A === B 를 수행할 경우, A와 B가 같은 메모리를 참조한다면 true가 반환됩니다.

     

    예시를 살펴보겠습니다.

    class someClass {
        var someProperty: Int?
    }
    
    var instance1 = someClass()
    var instance2 = someClass()
    var instance3 = instance1
    
    print(instance1 === instance2)
    print(instance1 === instance3)

    실행 결과:

    instance1someClass의 새로운 인스턴스가 저장되고 instance2 에도 someClass의 새로운 인스턴스가 저장됩니다.

    그리고 instance3instance1를 참조하게 됩니다. 이를 통해 instance1instance3은 같은 객체를 갖게 됩니다. 같은 메모리 주소를 가리키게 되는 것입니다. 결국 참조 비교연산자 === 를 통해 instance1instance2는 다른 객체를 갖고 instance1instance3은 같은 객체를 갖는 것을 알 수 있습니다.

     

    반대로 !== 를 사용한다면 비교되는 두 인스턴스가 다를 경우에 true가 반환됩니다. 참고로 === 연산자는 구조체에는 쓸 수가 없습니다. 구조체는 같은 참조값을 가질 수 없기 때문입니다. 즉, 값 타입이므로 참조 비교 연산자를 쓴다면 오류가 납니다.

     

     

    'Swift' 카테고리의 다른 글

    참조 비교 연산자 ===  (0) 2021.08.28
    클로저에서 [weak self]를 사용하는 이유  (0) 2021.08.21

    댓글 0

Designed by Tistory.