位置: 编程技术 - 正文

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)

  • 合同中增值税税率怎么描述
  • 组织员工活动方案
  • 天然气税率13%变11%
  • 未认证发票有时间限制吗
  • 存货盘盈如何处理
  • 捐赠支出需要什么手续
  • 报销宽带费属于什么科目
  • 商业折扣和销售折让计入财务费用吗
  • 金税盘处于报税期是什么意思
  • 接受的捐赠收入要交税吗
  • 无形资产减值是否可以转回
  • 公益性生物资产属于什么科目
  • 期末调汇的会计科目
  • 城镇垃圾处理费计入什么科目
  • 发票税额小数点后面没打印上能用吗
  • 土地增值税的纳税人是在我国境内
  • 收入冲正
  • 劳务派遣差额征税税率是多少
  • 公司不盈利用交税吗
  • 充值卡多长时间到账
  • 法人向公司借款用途怎么写
  • 担保贷款造成的损失可以税前扣除吗?
  • 公司室内装修
  • 管理费用劳务费包括什么
  • 工地购买的零星材料计入什么科目
  • 企业报税流程图
  • php生成app
  • 计算机存储信息的基本单位是( )A字长B速度C内存D字节
  • 房地产企业将开什么发票
  • php设计模式六大原则
  • 政府搬迁补偿款怎么算
  • 赔付支出有哪些
  • 影响当期损益的税费
  • 土地使用税缴纳人是使用者还是所有权人
  • 企业如何避免纳税问题
  • yii2超好用的日期组件和时间组件
  • vue路由实现
  • gpt3 transformer
  • 小规模公司卖车怎么开票
  • 火车及机票退票扣多少钱
  • 电子税务怎么绑定开票员信息
  • 帝国cms专题
  • 资产负债表的负债项目显示了企业所负担债务的
  • mongodb $lookup
  • 给员工进行拓展活动
  • 百旺税控盘跨月发票作废
  • 建安类企业包括哪些公司
  • 固定资产与固定资产净值的区别
  • sql server 2008 备份
  • mysql连接数据库的基本步骤是什么
  • 销售送客户礼物
  • 福利费可以抵扣所得税吗
  • 应交税费的账务处理一般纳税人
  • 小规模纳税人减按1%怎么计算
  • 应交税费属于什么科目借方
  • 增值税发票种类三种
  • 个税里的年金是指
  • 未收到投资款可以确认实收资本吗
  • 小规模纳税人季报网上申报流程
  • 外经证缴纳税费用个人卡可以用吗
  • 每个单位都要缴纳五险一金吗
  • 购买商品发生的费用计入
  • 外卖占比总营业额怎么算
  • mysql有哪些数据类型,有哪些运算符
  • win7系统环境变量无法编辑怎么办
  • 如何清理注册表文件
  • win7桌面记事本
  • ubuntu浏览网页
  • win7命令提示符怎么以管理员身份运行
  • realmon.exe - realmon是什么进程 有什么用
  • windows怎么右键
  • linux远程gui
  • win7怎么设置最佳性能
  • js中数组操作
  • shell去掉\r
  • 怎么使用vue和axios连接后端
  • python编码有哪些规范
  • python中for循环写法
  • 税务局不动产交易缴税方案
  • 立信金融会计学院
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设