반응형
Hashable 프로토콜을 준수하는 모든 인스턴스는 hashValue라는 정수형 프로퍼티를 갖고 있으며 이 값은 각각의 인스턴스를 식별하는 값이 된다. 즉 인스턴스끼리 같은지 다른지 비교해야하므로 Equatable 상속이 필요함
Set 또는 Dictionary의 Key로 hashable을 준수하는 모든 타입을 사용할 수 있음.
반드시 하나만 존재해야하는 딕셔너리의 키 값이나 중복된 값은 허용하지 않는 자료구조인 세트
public protocol Hashable : Equatable {
var hashValue: Int { get } //deprecated
func hash(into hasher: inout Hasher)
}
해시를 사용하면 O(1)의 시간복잡도를 가질 수 있는 이유..?
Hashable이 Equatable를 상속해야하는 이유
Hashable 프로토콜을 준수하는 모든 인스턴스는 hashValue라는 정수형 프로퍼티를 갖고 있으며 이 값은 각각의 인스턴스를 식별하는 값이 된다. 즉 인스턴스끼리 같은지 다른지 비교해야하므로 Equatable 상속이 필요함
참고 :
728x90
반응형
'Swift iOS 앱 개발 > Swift' 카테고리의 다른 글
[Swift] POP? (0) | 2023.01.07 |
---|---|
[Swift] mutating? (0) | 2023.01.06 |
[Swift] protocol 프로토콜이란? (0) | 2023.01.03 |
[Swift] 객체 간 소통 및 이벤트 전달 Delegate / NotificationCenter / KVO (0) | 2022.12.28 |
[Cocoa Design Pattern] KVO: Key-Value Observing (0) | 2022.12.26 |