HIT해
[Swift 기초문법 - 42] Equatable 본문
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을 추가한다면?
에러메세지도 사라지고
비교도 정상적으로 되는 것을 확인할 수 있다.
'Swift > Swift 기초문법' 카테고리의 다른 글
[Swift 기초문법 - 44] static func, final class func (0) | 2024.08.18 |
---|---|
[Swift 기초문법 - 43] Zip (0) | 2024.08.17 |
[Swift 기초문법 - 41] Optional chaining (0) | 2024.08.17 |
[Swift 기초문법 - 40] 콜렉션간 변형 (0) | 2024.08.17 |
[Swift 기초문법 - 39] reduce (0) | 2024.08.17 |