协议

协议可以让你无须知道类型本身的信息,就能绑定并利用类型的接口 interface,接口是类型提供的一组属性和方法

协议不仅能定义遵守该协议的类型必须提供的属性和方法,自己还能作为类型使用:变量、函数参数和返回值都可以把协议作为类型。

所有的类型都可以遵守协议,一个类型可以遵守多个协议。

协议继承

Swift 支持协议继承(protocol inheritance)。继承另一个协议的要求遵守的类型提供它本身及其继承协议的所以属性和方法。这跟类的继承不同:类的继承定义的是父类和子类之间的紧密联系,而协议继承只是把父协议的需求添加到子协议上。

协议继承是一个强大的工具,能让我们基于现有的一个或一组协议通过添加需求来方便地新建协议。不过,使用协议继承可能会让你在创建类型作出错误的决策。使用协议继承会导致新建协议类型是继承的类型,对协议定义会有一定的污染

协议组合

协议组合的语法用关键字 & 中缀操作符告诉编译器,我们把多个协议组合成了单个的需求。协议组合可以对多于两个得协议使用,只要用逗号分隔、放在尖括号 <>

results matching ""

    No results matching ""