UIEdgeInsets
をHashable
に準拠させる実装を手動で行なった時のメモ。
手動でhashvalueを取得
手動でhashvalueを取得したい場合、SwiftではHasher
構造体を使用できます。combine()
メソッドでデータをキャプチャし、finalize()
メソッドでhashvalueを生成します。
var hasher = Hasher() hasher.combine(23) hasher.combine("Hello") let hashValue = hasher.finalize()
UIEdgeInsetsをHashableに準拠させてみる
上記の内容を踏まえて、UIEdgeInsetsを下記のようにしてHashableに準拠させることができます。今回に限らず、他の場面でも使えるので覚えておくと良さそうですね🍜
extension UIEdgeInsets: Hashable { public func hash(into hasher: inout Hasher) { hasher.combine(left) hasher.combine(right) hasher.combine(top) hasher.combine(bottom) } }
てな感じで本日も以上となります🏃♂️