반응형
이 변경점은 SE-0261 Identifiable Protocol에서 제안된 내용입니다.
이번에 새롭게 추가된 Identifiable
프로토콜은 아래처럼 생겼습니다.
protocol Identifiable {
associatedtype ID: Hashable
var id: ID { get }
}
그냥 단순하게 ID
하나를 구현하는 것임을 알 수 있습니다.
목적은 매우 단순합니다. 말 그대로 ID를 구현하는 것입니다. 다른게 비유하자면 신원 확인 가능성을 구현하는 것입니다. 대한민국 사람이라면 쉽게 이해할 수 있을만한 것이 바로 주민등록번호를 들 수 있을 것 같습니다.
아래의 예는 '한국인'이라는 구조체에 이 Identifiable
을 구현하는 예제입니다.
struct Korean: Identifiable {
let id: String
let name: String
init(name: String, juminNumber: String) {
self.name = name
self.id = juminNumber
}
}
let me = Korean(name: "오랭이", juminNumber: "123456-7890123")
let you = Korean(name: "홍길동", juminNumber: "334455-1122334")
일단 신원 확인 용도라고 의도는 파악할 수 있습니다만, 동일성을 비교할 때도 활용이 가능할 수 있습니다. Equatable
과는 다르게 ID
하나만으로 비교해야 하는데 이건 데이터베이스의 각 레코드가 고유 ID를 가지고 있다면 충분히 비교 용도로도 사용할 수 있겠지요.
728x90
반응형
'기술적인 이야기 > 애플 플랫폼 개발' 카테고리의 다른 글
Combine 이벤트 체인이 왜 필요할까? (0) | 2020.01.23 |
---|---|
Combine Framework는 어떤 녀석일까요? (0) | 2020.01.15 |
[Swift 5.1] 리턴 생략 가능 (SE-0255) (0) | 2019.11.05 |
[Swift 5.1] Static Subscript (SE-0254) (0) | 2019.10.31 |
[Swift 5.1] 키 패스를 이용한 동적 멤버 찾아보기 (SE-0252) (0) | 2019.10.30 |
댓글