位置: 编程技术 - 正文

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)

  • 增值税税控系统技术维护费怎么做账
  • 增值税和购置税是一个东西吗
  • 小规模第一次申请发票能领多少
  • 原始凭证分类的目的是什么?
  • 测试收入的钱怎么用
  • 软件 折旧年限
  • 季报利润表本期金额怎么计算
  • 代开了专票,但是销售额没有超过30万怎么处理
  • 工商企业年金查询个人账户查询
  • 其他应收怎么调增值税
  • 债务清偿抵充的案例
  • 生产经营期间固定资产报废清理的净损失
  • 收购企业账务处理
  • 软件开发服务费会计分录
  • 工程款增值税怎么算
  • 建筑企业在增值税方面新出台的政策
  • 劳务报酬所得的收入额
  • 企业在开办期间发生的费用如何处理
  • 业委会是否要交税
  • 财务兼职怎么算工资
  • 机器用润滑油怎么使用
  • 如何分析财务报表看企业经营情况
  • 预收房租费用计入什么科目
  • 为什么说人与人的悲欢不相通
  • 物流运输公司要交税吗
  • 认缴注册是什么意思
  • 结转损益类收入科目的余额会计分录
  • 期货保证金的计算公式当日盈亏怎么算
  • 黑枣的功效与作用图片
  • 最多人用的操作系统
  • 财务比率分析的主要内容
  • EarthLiveSharp中cloudinary的CDN图片缓存自动清理python脚本
  • 企业取得交易性金融资产时
  • 前后端分离弊端
  • php aes加密解密
  • 公司向股东个人借款的会计分录
  • phpcms文档
  • 金税盘怎么增加收款人和复核人
  • 如何在对公账户对账操作
  • 赔偿客户款应该怎么记账
  • python 进程管理
  • 其他应付款的会计编码
  • 小微企业财政政策
  • 软件属于哪种无形资产
  • 车辆购置税 购置
  • 小额贷款行业新规
  • 收到国外客户的货款怎么做账
  • 分销佣金税务账务怎么做
  • 股权转让,受让方的会计分录
  • 货物赔偿款计入什么会计科目
  • 研发支出全部资本化能不能评高企
  • 分包开给总包的票,能不能抵扣
  • 预计负债 负债 区别
  • 企业代理社保
  • win8 win8.1
  • 如何安装vmware10
  • linux系统磁盘管理的主要内容
  • 远程关机对话框怎么打开
  • symtray.exe - symtray是什么进程 有何作用
  • win10如何恢复已删除的密钥
  • xp怎么删除电脑系统
  • centos 安装
  • win8应用商店废了
  • win7系统删除文件需要权限
  • 休眠后网络断开
  • win10怎么关闭讲述人模式
  • win8.1激活方法
  • Linux系统怎么设置中文输入法
  • cocos2d js教程
  • ExtJS4 Grid改变单元格背景颜色及Column render学习
  • jquery 属性
  • 为什么你应该使用手机
  • 如何判断sma
  • 运算符优先级由高到低的顺序
  • jquery中validate
  • js的a标签
  • input checked选择
  • 福建省网上税务办事大厅
  • 贵阳市税务电话
  • 宣传中常用的效应包括
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设