位置: 编程技术 - 正文

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)

  • 支付税金怎么算
  • 分期收款销售的基本业务处理
  • 关联方需要计提坏账准备吗?
  • 领用包装物的会计分录
  • 个人工资薪金所得税怎么查
  • 企业零申报怎么申报
  • 盈余公积要是提多了能转回么
  • 营改增后企业要交哪些税
  • 社保年年递增
  • 进口货物要交消费税吗
  • 当期免抵税额和当期免抵退税额
  • 发票专用章在哪里盖章
  • 一般纳税人上个月没有申报这个月申报不了
  • 公司一般根据什么裁员
  • 商品进销差价的核算方法
  • 待摊费用核算的内容主要包括
  • 加计扣除农产品进项税额
  • 企业会计准则固定资产解释
  • 偿还借款利息是现金流量什么项目
  • 往来形式的投资款是借款吗
  • 新公司会计建账流程
  • macbook触摸板如何拖动
  • 保养费计入什么科目
  • win10系统电脑怎么连接wifi
  • 小微企业免征税额度
  • 现金流量套期的分录
  • axios怎么使用
  • php输入输出
  • php笔记程序
  • 国家对国有企业采取的政策是怎样的
  • 外国企业如何在阿联酋注册商标
  • 合法票据的有哪些
  • php socketio
  • 非货币性资产交换和债务重组的区别
  • 房屋出租一定要签合同吗
  • php get_headers
  • 将时间序列转化为图像
  • 详解16型人格
  • 领用包装物会计处理
  • 增值税发票已认证抵扣还可以进项税额转出吗
  • logread命令
  • mac datagrip
  • 城镇土地使用税优惠政策
  • 营改增后自建厂房抵扣
  • 合伙人退伙后对退伙后的债务承担责任吗
  • 公司收到注册资本金需要做哪些呢
  • 无形资产出售当月是否摊销
  • 外购固定资产对公司影响
  • 可转债中签后怎么看涨跌
  • 购买其他权益工具投资时发生的交易费用
  • 差额征税如何做分录
  • 个体工商户开具房屋租赁发票
  • 土地测绘费计入开发间接费?
  • 企业中征码怎么查询
  • 担保贷款借款人死亡
  • 基本账户可以转私人账户吗
  • 研发支出是科目吗
  • 红酒礼品盒批发
  • 应交税费对应的会计科目
  • 自动化收集落料
  • ubuntu 10.04安装
  • window svn
  • ubuntu开机密码不记得了
  • w7系统cf怎么调烟雾头
  • centos安装完为什么没有桌面
  • centos的防火墙怎么关
  • windows8如何使用
  • linux计划任务执行脚本
  • jquery搜索页面内容
  • node创建服务
  • Android开发中遇到的问题及解决方案
  • hadoop有几个版本
  • MaterialCheckBox
  • js复制对象的方法有哪几种
  • JavaScript+html5 canvas制作色彩斑斓的正方形效果
  • javascript学习指南
  • 怎样编?
  • 河南洛阳医疗保险电话
  • 怎样在开票系统中增加新的名称
  • 两税法的历史解释
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设