位置: 编程技术 - 正文

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)

  • 关税完税价格是指什么意思
  • 如何确认产品销售收入
  • 购销金额多少的情况下必须需要签合同?
  • 税盘锁了还能报税吗
  • 餐饮企业原材料四大类
  • 销售货物分期付款怎么确认收入
  • 股权出让需要交税吗
  • 剩余折旧月份
  • 开专票红冲是不是双方都要开信息表
  • 设备发票怎么抵扣
  • 暂扣员工工资怎么做账
  • 事业单位其他收入的会计分录
  • 前年的票发现要不得,可以冲红吗
  • 双薪制工资如何缴纳个人所得税?
  • 定额发票上盖什么章
  • 专票怎么提交不上去
  • 单位在工资表中如何填写
  • 联营扣点怎么核算保本费用
  • 劳务费个人还需要交税吗
  • 企业资产类科目的是
  • 长期待摊费用以后怎么摊销
  • 公司工会发给职工的福利
  • 发票验证查询系统官网入口
  • 应付福利费科目
  • 笔记本电脑设置pin是什么意思
  • 房屋扩建折旧年限怎么算
  • 总公司给子公司打款 如何做凭证
  • macos big sur卡在
  • 事业单位专项经费包括哪些
  • 制造费用结转到主营业务成本
  • 向股东借款作为股东借款
  • 查补增值税的会计处理
  • macOS 10.13允许任何来源没有了怎么办?macOS 10.13允许任何来源没了开启步骤
  • 无线路由器wifi指示灯不亮
  • pytorch复制模型
  • php操作mysql数据库
  • php数组函数题目
  • 马塔饰件怎么样
  • 建筑劳务公司的法人代表有什么责任
  • thinkphp d
  • java上传文件 multipartfile
  • cp命令使用
  • 帝国cms手机端点击加载不动怎么弄
  • 公司建造厂房
  • 电脑学word下哪个软件视频
  • 财务章有几种样式
  • 劳务费和工程劳务费有区别
  • 简述社会保险的项目
  • 红字发票开错可以重开吗
  • percona-toolkit对MySQL的复制和监控类操作教程
  • 织梦如何开启会员功能
  • 收到货款的会计分录怎么做账
  • sqlserver2008不存在或拒绝访问怎么办
  • 工会经费在哪儿申报
  • 航天信息服务费发票哪里打印
  • 现金折扣和商业折扣怎么确定收入
  • 坏账准备具有哪些特征
  • 准予抵扣销项税额
  • 专项应付款如何冲减
  • 合并报表怎么合并
  • 残疾人保障金必须交吗
  • 工程项目分包需要招标吗
  • count(10,2,5)
  • 删除sql server2008
  • sql复制表的语句
  • rsync如何同步隐藏文件和排除文件?rsync同步隐藏文件和排除文件的方法
  • ffplay播放视频命令
  • win7如何创建文件夹
  • mac使用磁盘工具的快捷键
  • linux中文件系统
  • unity怎么bake
  • css样式的使用
  • Jquery ajax 同步阻塞引起的UI线程阻塞问题
  • linux安装oracle数据库步骤
  • windows批处理命令教程
  • Node.js中的事件循环是什么
  • Emeditor与dos(cmd)经典使用技巧之批量生成网页
  • 上海2023年个人所得税计算
  • 北京通个人认证
  • 查询如何查询
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设