관리 메뉴

사과하는 제라스

[Swift 문법] Equatable 프로토콜 본문

제라스의 iOS 공부/Swift 문법

[Swift 문법] Equatable 프로토콜

Xerath(제라스) 2023. 8. 19. 07:42

목차

    728x90
    반응형

    Equatable 프로토콜이란?

    Equatable 프로토콜은 주어진 타입 간의 동일한 데이터를 가지는지 비교 연산을 구현하도록 하는 규약이다.

     

    코드로 이해하는 Equatable 프로토콜

    다음 코드를 보도록 하자.

    import UIKit
    
    struct Pet : Equatable{
        let id: String
        let name: String
        
        static func == (lhs: Pet, rhs: Pet) -> Bool {
            return lhs.id == rhs.id
        }
        
        // 사실 !=는 안적어도 된다. Equatable을 준수하면 !=는 ==의 반대 결과로 알아서 적용된다.
        static func != (lhs: Pet, rhs: Pet) -> Bool {
            return lhs.id != rhs.id
        }
    }
    
    let myPet1 = Pet(id: "01", name: "고양이")
    let myPet2 = Pet(id: "02", name: "댕댕이")
    let myPet3 = Pet(id: "01", name: "개냥이")
    
    //if myPet1.id == myPet3.id {
    //    print("두 팻은 같다")
    //}
    
    if myPet1 == myPet3 {
        print("두 팻은 같다")
    }
    
    if myPet1 != myPet2 {
        print("두 팻은 같지 않다")
    }

     

    Equatable을 사용 시 장점

    728x90
    반응형