WooKoo Blog

물과 같이

개발/개발

[iOS] - Hashable Protocol 은 무엇일까요???

WooKoo 2020. 5. 27. 16:22

Hashable

정수 Hash 값을 제공하는 타입의 프로토콜

해시란? 

고정된 길이의 데이터로 매핑

매우 빠른 데이터 검색을 위한 컴퓨터 소프트웨어에서 사용한다 중복되는 레코드도 검색 가능

 

Set 또는 Dictionary의 Key로 Hashable을 준수하는 모든 타입을 사용 할 수 있다.

 

Swift에서 Dictionary는 Dictionary<KeyType, ValueType> 형태로 쓰인다.

유일한 제약사항이 있는데, 반드시 keyType은 해쉬가능한 타입이어야한다.(hashable)

즉 그 자체로 유일하게 표현이 가능한 방법을 제공해야한다.

 

swift의 기본 타입(String, Int, Double 등) 기본적으로 해쉬가 가능해 Dictionary의 KeyType으로 사용이 가능하다.

 

*해쉬의 값은 프로그램 실행에 따라 동일 하지 않을 수 있습니다. 향후 실행에 사용할 hash값을 저장하지마십시오.

 

1. 구조체의 경우 저장 프로퍼티는 모두 hashable을 준수해야한다.

2. 열거형의 경우 모든 associated values는 모두 Hashable을 준수해야한다.

 

'개발 > 개발' 카테고리의 다른 글

[iOS] - 위치정보(위도 경도 획득하기)  (2) 2020.05.31
[Swift] - Generic(제네릭)  (0) 2020.05.28
[iOS] - GCD란???  (0) 2020.05.27
[iOS] - 코코아 터치 프레임워크란?  (0) 2020.05.27
[iOS] - Foundation Kit이란?  (0) 2020.05.27