관리 메뉴

사과하는 제라스

[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
반응형