개발/iOS
Equatable
allthi
2024. 11. 20. 13:02
반응형
Equatable의 의미
1. 단어 뜻
- Equatable: "동등성을 비교할 수 있는"이라는 뜻을 가진 형용사입니다.
- Equal(동등한)에서 파생된 말로, 어떤 두 객체가 같은지 확인할 수 있는지 여부를 나타냅니다.
2. iOS 개발에서의 의미
- Equatable은 Swift에서 프로토콜로 제공되며, 객체 간의 동등성을 비교할 수 있도록 합니다.
- Equatable 프로토콜을 채택하면 객체 또는 값 타입에서
==
연산자와!=
연산자를 구현하거나 사용할 수 있습니다. - 예를 들어, 두 객체가 같은 데이터 값을 가지는지 판단할 때 유용합니다.
- Equatable 프로토콜을 채택하면 객체 또는 값 타입에서
3. 사용법
- Equatable을 채택한 타입은 반드시
==
연산자를 구현해야 합니다. - Swift에서는 기본 타입(Int, String, Double 등)이 이미 Equatable을 채택하고 있습니다.
struct User: Equatable {
let id: Int
let name: String
static func == (lhs: User, rhs: User) -> Bool {
return lhs.id == rhs.id && lhs.name == rhs.name
}
}
// 사용 예시
let user1 = User(id: 1, name: "Alice")
let user2 = User(id: 1, name: "Alice")
if user1 == user2 {
print("두 유저는 동일합니다.")
} else {
print("두 유저는 다릅니다.")
}
4. 주요 특징
- 자동 구현: Swift 4.1 이상에서는 구조체 또는 열거형이 모든 멤버가 Equatable 프로토콜을 따를 경우,
==
를 자동으로 구현합니다.
struct Point: Equatable {
var x: Int
var y: Int
}
let p1 = Point(x: 1, y: 2)
let p2 = Point(x: 1, y: 2)
print(p1 == p2) // true
요약
- Equatable: "두 객체가 동등한지 비교할 수 있도록" 만드는 Swift 프로토콜.
- 구현 시
==
와!=
연산자를 통해 값을 비교 가능. - 기본 타입과 대부분의 간단한 구조체에서는 자동으로 지원.
반응형