本文总结自Greg Heo 在旧金山的swift 峰会上的演讲
我们先列举出swift标准库中常见的55个协议。

从协议名结尾字面上我们可以将Protocol分为able、Type、Convertible 三类:
从功能角度上来讲可以将标准库中的协议分成下面三类:
1. 功能添加型(able结尾) "可以做什么?"
举例:
1.Hashable: 给你的实例添加一个生成哈希值的功能。
2.Equatable: 给你的实例添加一个判断相等的功能。
2.类型对比型(Type结尾) "这个实例是什么?"
举例:
1.CollectionType: swift中所有的集合类型都要遵守的一个协议,告诉大家你的实例是一个集合类型的。
3.类型转换型(Convertable结尾) "这个实例可以转化成什么?"
举例:
1.CustomStringConvertible: Print打印输出时比较常用的一个协议,这个协议可以将你的实例需要打印的信息转化成字符串。
我们在以后的日常中可以通过一个协议的命名方式大概推算出这个协议的作用。
Tips: 以后在项目开发中自定义协议的时候,命名规范就可以依据这三个方面来做协议的命名😄