Hashable_Equatable

Equatable & Hashabable

这两个在语言里是相当重要了, 想想 dictionary, 想想当你比较两个对象是否相等时, 这都离不开这两个特性

swift-evolution 上的关于这些特性的开发描述

简单总结下我看这个理解到的

动机

在这之前, 很多使用比较两个对象相等时(Swift3), 都是需要实现 Equatable 协议, 然后实现==函数, 里面比较各种定义的成员属性, 最麻烦的就是, 当你改动了任何一个属性后, 都需要来改动这里, 这很容易因为忽略了忘记了或者什么的出错

当然啊! 改一个地方就要改很多地方, 麻烦死了!!! 类似API 请求回来的数据, 还得定个class, class 里还要写上对应的转化函数…..简直…累的不要不要的…(穷则变, 变则通..幸好后来找了一些方法来加快这个步奏, 不至于花太多人力在这上面)