位置: 编程技术 - 正文

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)

  • 税务申报系统没有印花税
  • 开诊所会计如何做账
  • 增值税减免税申报明细表免税代码和名称
  • 委外加工怎么做仓库账
  • 服务费发票税率1%
  • 银行汇票可以异地跨行使用吗
  • 哪些支出允许在企业所得税前扣除
  • 装修费是否计入固定资产
  • 对方公司退回货款,但发票已经开了怎么写摘要
  • 收到的货款与发票数不符,怎么做账
  • 不含税的营业收入是什么意思
  • 定额发票验旧是什么意思
  • 开具电费发票说明
  • 普通增值税 税点
  • 企业范围内已利用的荒山要交城镇土地使用税吗
  • 缴纳的社保费可以退吗怎么退
  • 交通卡定额发票购买
  • ah股溢价是什么意思 搬砖
  • 资产处置损失减少的原因
  • 减免附加税分录怎么做
  • 企业出租商铺交什么税费呢
  • 销售推广的常用形式
  • 个体工商户怎么交社保
  • windows10不会自动锁屏
  • 自然人独资企业交什么税
  • 单位开具发票
  • 增值税附税的计算公式
  • excel中怎么截取
  • windows update更新错误
  • window10自带商店下载位置
  • .exe是什么文件
  • 常用的php操作mysql的函数有哪些
  • 应付职工薪酬的借方和贷方
  • php imagettftext
  • 海运发票模板
  • vue知识点总结
  • 面试官:一千万是真的吗
  • php框架零基础入门
  • php超时限制
  • 金蝶账无忧待遇和金蝶一样吗
  • 海岸边上
  • 微信支付开发文档教程
  • CLIP(Contrastive Language-Image Pre-Training)简介
  • es工具类
  • 2023前端面试题目
  • 白酒贴牌酒是真酒还是假酒
  • mysql的使用实验总结与分析
  • DEDECMSV5.6将软件下载次数直接生成静态
  • 织梦相关文章调用
  • 免征增值税所得税在申报表中咋填
  • 公司亏损注销了怎么赔偿
  • 计提合同印花税怎么做账
  • 公司转账转错账户
  • 对外支付3万美元怎么算
  • 低值易耗品如何摊销
  • 外购货物分配给股东
  • 电子支付支付是什么意思
  • 开来发票没有付款可以进入费用吗?
  • 本年利润的计算
  • sql server多行添加
  • mysql查询条件不区分大小写
  • winxp u盘拒绝访问
  • 联想随笔
  • 电脑重装xp系统怎么设置
  • 电脑ahci模式什么意思
  • linux修改22端口号
  • cocos2d开发的知名游戏
  • socketio nodejs
  • javascript面向对象精要pdf
  • python if none
  • javascript要怎么学
  • jquery实例
  • 风力发电,光伏发电还有哪些
  • 高速通行费发票查验
  • 江苏省电子税务局怎么添加办税人员
  • 深圳纳税信息查询
  • 北京市朝阳区各中学校服照片
  • 四季度预缴申报表
  • 深圳城管局 局长
  • 税务总局纪律作风
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设