iOS 응용 (swift)
[iOS - swift] enum Equatable 비교 연산자 만드는 방법
jake-kim
2021. 2. 23. 21:35
enum 타입에 같은지 비교하는 연산자를 적용하는 방법
- enum 타입 예시
enum JobType {
case singer
case engineering
case dentist
}
- Equatable 구현
enum JobType: Equatable {
case singer
case engineering
case dentist
}
- "static func == "로 연산자 구현
* 참고 - lhs: left hand side, 첫번째 매개변수를 lhs, 두번째 매개변수를 rhs
enum JobType: Equatable {
case singer
case engineering
case dentist
static func == (lhs: Self, rhs: Self) -> Bool {
switch (lhs, rhs) {
case (.singer, .singer),
(.engineering, .engineering),
(.dentist, .dentist):
return true
default:
return false
}
}
}
- 사용 (디폴트로 존재하는 '=='와 기능은 같지만, 여러개의 커스텀 가능)
let jobType = JobType.dentist
print(jobType == .dentist) // true