位置: 编程技术 - 正文

Swift中的协议(protocol)学习教程(swift协议范型)

编辑:rootadmin

推荐整理分享Swift中的协议(protocol)学习教程(swift协议范型),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:swift存储协议,swift property,swift中的协议属性,swift协议和oc协议的区别,swift 协议,swift协议扩展,swift协议扩展,swift协议范型,内容如对您有帮助,希望把文章链接给更多的朋友!

一、引言

协议约定了一些属性与方法,其作用类似Java中的抽象类,Swift中类型通过遵守协议来实现一些约定的属性和方法。Swift中的协议使用protocol关键字来声明。Swift中的协议还有一个十分有意思的特性,协议可以通过扩展来实现一些方法和附加功能。

二、在协议中定义属性和方法

协议中定义的属性只约定名称和类型,在具体类型的实现中,其可以是存储属性也可以是计算属性,协议中还需要指定属性是可读的还是可读可写的。示例代码如下:

有一点需要注意,协议中的可读并不是只读,协议中的属性约定成可读可写,则在实现时,这个属性必须是可读可写的,但是如果协议中约定成可读的,则此属性可以是只读的也可以是可读可写的,看具体的实现。

协议中约定的方法可以是实例方法也可以是类型方法,示例如下:

Swift中的协议(protocol)学习教程(swift协议范型)

同样,协议中也可以对构造方法进行定义约定。

三、协议的特点

协议中虽然没有任何属性和方法的实现,但是其仍然可以当做类型来使用,在函数参数、返回值中应用广泛,示例如下:

协议作为类型这种用法另一个应用点是在集合类型中,协议可以作为所有遵守此协议的集合类型。

协议可以像其他类型一样进行继承,子协议将自动拥有父协议约定的属性和方法。协议也可以通过class关键字来定义只有类可以进行遵守,示例如下:

协议既然可以像其他类型一样进行使用,当然它也可以使用is,as&#;,as!进行检查和转换,关于is,as的更多用法可以查看Swift关于类型转换的内容。

协议也可定义其中的属性或方法为可选的,即遵守此协议的类可以实现也可以不实现可选的属性和方法,然而,声明为可选的需要此协议为@objc类型的,示例如下:

Swift中的协议还有一个十分重要的特性,其可以通过扩展来进行属性、方法以及下标的实现。这对于一些通用类的方法十分方便,这相当于所有继承此协议的类都默认实现了这样的方法,示例如下:

Python中super()函数简介及用法分享 首先看一下super()函数的定义:super([type[,object-or-type]])Returna**proxyobject**thatdelegatesmethodcallstoa**parentorsibling**classoftype.返回一个代理对象,这个对象负责将方法

Python编写简单的HTML页面合并脚本 最近写一个BootStrap页面...因为功能需要所以决定一个页面解决所有问题,然后用jQuery来动态显示功能....然而这样做的话页面会相当庞大,一堆隐藏模态

Python中的异常处理相关语句基础学习笔记 异常是指因为程序出现了错误而在正常控制流以外采取的行动,其分为两个阶段,第一阶段是引发异常的错误,当系统检测到错误并且意识到异常条件

标签: swift协议范型

本文链接地址:https://www.jiuchutong.com/biancheng/386963.html 转载请保留说明!

上一篇:Python中多线程的创建及基本调用方法(python多线程技术)

下一篇:Python中super()函数简介及用法分享(super函数python)

  • 哪些情况下可以无偿提供法律援助
  • 个人所得税申报操作流程2023
  • 什么是税收收入效应
  • 印花税贴花是什么时候取消的
  • 红利税是什么时候扣的
  • 消费税在哪个环节可以抵扣
  • 权益法核算转成本法
  • 终止经营的会计处理
  • 坏账准备计提比率计算公式
  • 可转债如何不转换的财务处理
  • 企业房产税每年交几次
  • 机票行程单改成发票可以报销吗
  • 增值税专票丢了能补开吗
  • 外资企业研发中心
  • 带薪缺勤会计处理
  • 其他应收款账户期初借方余额为35400
  • 一般纳税人每个月几号报税
  • 开办费一次性摊销企业所得税
  • 调低社保基数怎么操作
  • 开发票具体内容超过经营范围还可以开吗?
  • 租金收入未收到 税法规定
  • 车间扫帚存放架子
  • 应收账款减值准备计提比例
  • 小规模纳税人需要做账吗
  • 公司用备用金去哪里投诉
  • 旅游业小规模差额计税的能开1%
  • win7系统步骤
  • 单位银行结算账户属于活期存款账户
  • iframe更改自身src
  • 结转结余会计分录
  • 有关增值税的计算真题
  • 劳务报酬个税计算器2021计算器
  • 艾罗芒阿
  • html文档基本结构包括哪几部分
  • cvpr2021论文列表
  • sql语句的基本用法
  • php如何实现重载
  • php获取访问者信息
  • php分页思路
  • 代理费与代理运费的区别
  • 公司请的临时工
  • 施工企业工人工资付给包工头老板需要写什么模板
  • 资产减值损失结转到哪里
  • 接受捐赠收入如何纳税
  • 增值税发票的认证
  • python 规划求解
  • 生产成本明细账t型账
  • 通用发票如何缴销
  • PostgreSQL新手入门教程
  • 一般纳税人销售自己使用过的物品
  • 建信融通e信通怎样转让
  • 餐饮行业购入农产品
  • 纸巾的发票可以抵扣进项税吗
  • 税务突然查账
  • 一正一负发票要做凭证吗
  • 申请享受免税资金的条件
  • 资产负债表和利润表的利润不一致
  • mysql 备份方式
  • MySQL ERROR 1045 (28000) 错误的解决办法
  • wind如何安装
  • 在查询结果中添加字母
  • 七彩虹主板 csm
  • win7自带防护软件
  • ubuntu无法进入系统出现uid121
  • nec笔记本电脑开机屏幕没反应
  • 远程删除
  • 电脑开机黑屏光标闪烁怎么解决
  • win10无法
  • centos搭建服务器
  • 怎么用win7兼容模式运行
  • win8什么时候发布
  • windows 8/10whql
  • linux运行级别有几种
  • JavaScript运算符都有哪些
  • jquery基础知识
  • unity3d坐标转换平面坐标代码
  • jquery console.log
  • Jquery和BigFileUpload实现大文件上传及进度条显示
  • 从日本带化妆品回国会被扣吗
  • 电子发票查询官网入口国家税务局重庆电子税务
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设