Swift/Swift 기초문법
[Swift 기초문법 - 42] Equatable
힛해
2024. 8. 17. 09:15
728x90
JSON 통신이나 AF TCA 에서 자주 사용되는 Equatable이 무엇일까.
항상 사용하라고만해서 사용했지 무슨 의미로 사용되는지 몰랐었다.
Equtable이란
Swfit 표준 라이브러리에 정의된 프로토콜로 타입이 동등성 검사를 지원하기 위해 채택하는 프로토콜이다.
즉 두 인스턴스가 같은지 아닌지를 비교할 수 있게 해준다.
이 프로토콜을 채택한 타입은 == 연산자를 구현해야 하며 이는 두 인스턴스가 동일한지 확인하는 데 사용된다.
Equatable의 기본 개념
protocol Equatable {
static func ==(lhs: Self, rhs: Self) -> Bool
}
자동으로 != 연산자도 제공된다.
Equtable 프로토콜 구현
struct Person: Equatable {
let name: String
let age: Int
static func ==(lhs: Person, rhs: Person) -> Bool {
return lhs.name == rhs.name && lhs.age == rhs.age
}
}
이제 두 인스턴스를 비교할 수 있다.
let person1 = Person(name: "Alice", age: 30)
let person2 = Person(name: "Alice", age: 30)
let person3 = Person(name: "Bob", age: 25)
print(person1 == person2) // 출력: true
print(person1 == person3) // 출력: false
실제 코드를 통해 알아보자.
두 인스턴스를 비교할 수 없다고 말하지만 Equtable을 추가한다면?
에러메세지도 사라지고
비교도 정상적으로 되는 것을 확인할 수 있다.