Swift中的协议

协议的语法

  • 自定义类型声明时,将协议名放在类型名的冒号之后来表示该类型采纳一个特定的协议。多个协议可以用逗号分开列出。
  • 若一个类拥有父类,将这个父类名放在其采纳的协议名之前,并用逗号分隔。

属性要求

  • 协议可以要求所有遵循该协议的类型提供特定名字和类型的实例属性或类型属性。协议并不会具体说明属性是储存型属性还是计算型属性--它只具体要求属性有特定的名称和类型。协议同时要求一个属性必须明确是可读的或可写的可读的。
  • 若协议要求一个属性为可读和可写的,那么该属性要求不能用常量存储属性或只读计算属性来满足。若协议只要求属性为可读的,那么任何种类的属性都能满足这个要求,而且如果你的代码需要的话,该属性也可以是可写的。
  • 在协议中定义类型属性时在前面添加 static关键字。当类的实现使用 class 或 static 关键字前缀声明类型属性要求时,这个规则仍然适用。

方法要求

mutating 方法

  • 若你定义了一个协议的实例方法需求,想要异变任何采用了该协议的类型实例,只需在协议里方法的定义当中使用 mutating 关键字。这允许结构体和枚举类型能采用相应协议并满足方法要求。

初始化器要求的类实现

将协议作为类型

协议继承

类专用的协议

协议组合

可选协议要求

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 协议 协议的语法 自定义类型声明时,将协议名放在类型名的冒号之后来表示该类型采纳一个特定的协议。多个协议可以用都好...
    孤雁_南飞阅读 4,381评论 0 0
  • 定义: 协议定义了一个蓝图,规定了用来实现某一特定的任务或者功能的方法、属性,或其他需要的东西。类、结构体、枚举都...
    geekLiu阅读 5,316评论 0 1
  • Swift中的协议和OC的协议基本相同,都是规定了用来实现某一特定任务或者功能,不过在Swift中可以添加需要实现...
    思绪_HY阅读 8,968评论 0 3
  • 1. 协议语法 要让自定义类型遵循某个协议,在类型名称后加上协议名称即可,中间以冒号(:)分隔,遵循多个协议时,各...
    keisme阅读 2,607评论 0 0
  • swift中协议定义了一个蓝图,规定了用来实现某一些特定人物或者功能的方法,属性,以及其他需要的东西。类,结构体,...
    陈藩阅读 2,299评论 0 0

友情链接更多精彩内容