ποΈ23.08.09
Hashable
- Hashable νλ‘ν μ½μ μ€μνλ λͺ¨λ νμ
μ μ§ν©(set)μ΄λ λμ
λ리μ ν€λ‘ μ¬μ©ν μ μμ
- νμ€ λΌμ΄λΈλ¬λ¦¬μ λ§μ νμ
μ΄ Hashableμ μ€μν¨
- λ¬Έμμ΄, μ μ, λΆλ μμμ , λΆμΈ κ° λ±κ³Ό μ¬μ§μ΄ μ§ν©(set)μ κΈ°λ³Έμ μΌλ‘ ν΄μ κ°λ₯ν¨
- μΌλΆ λ€λ₯Έ νμ
, μλ₯Ό λ€μ΄ μ΅μ
λ, λ°°μ΄ λ° λ²μλ νμ
μΈμκ° λμΌν κ²½μ° μλμΌλ‘ ν΄μ κ°λ₯νκ² λ¨
- μ¬μ©μ μ μ νμ
λ ν΄μ κ°λ₯ν¨
- μ°κ΄ κ°μ κ°μ§μ§ μλ μ΄κ±°νμ μ μν λλ μλμΌλ‘ Hashable μ€μκ° κ°λ₯νλ©°, λ€λ₯Έ μ¬μ©μ μ μ νμ
μλ hash(into:) λ©μλλ₯Ό ꡬννμ¬ Hashable μ€μλ₯Ό μΆκ°ν μ μμ
- μ μ₯ νλ‘νΌν°κ° λͺ¨λ Hashableν ꡬ쑰체 λ° λͺ¨λ -Hashable μ°κ΄ κ°μ κ°μ§λ μ΄κ±°ν νμ
μ λν΄μλ μ»΄νμΌλ¬κ° μλμΌλ‘ hash(into:)μ ꡬνμ μ 곡ν μ μμ
- κ°μ ν΄μ±νλ€λ κ²μ ν΄μ ν¨μλ₯Ό ν΅ν΄ ν΄λΉ κ°μ ν΅μ¬ κ΅¬μ± μμλ₯Ό μ
λ ₯νλ κ²μ μλ―Έν©λλ€. μ¬κΈ°μ ν΅μ¬ κ΅¬μ± μμλ Equatableμ ꡬνμ κΈ°μ¬νλ μμμ
λλ€. λ κ°μ μΈμ€ν΄μ€κ° λμΌνλ©΄ hash(into:)μμ Hasherμ λμΌν κ°μ λμΌν μμλ‘ μ
λ ₯ν΄μΌ ν©λλ€.
https://developer.apple.com/documentation/swift/hashable
https://developer.apple.com/documentation/swift/hasher
μ μ½μμ΅λλ€. μ’μ μ 보 κ°μ¬λ립λλ€.