位置: 编程技术 - 正文

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)

  • 研发费用加计扣除是什么意思啊
  • 长期待摊费用对方科目
  • 收到税务局汇算清缴通知
  • 原材料月末有余额吗
  • 出口退税不退税主要适用于
  • 复式记账的优点有哪些
  • 其他收益科目账务处理
  • 耕地占用税的账务处理
  • 电子承兑到期怎样兑现
  • 提取备用金如何在退回公司
  • 路桥年费税额抵扣账务处理怎么做?
  • 公司收到现金货款需要存入银行吗
  • 关停企业的生产线能否停止计提折旧?
  • 哪些发票可以报销抵税
  • 互联网合同范本
  • 餐厅开增值税普通发票
  • 延迟抵扣的税务风险
  • 人工费增值税的税率是多少?
  • 工程款发票备注栏项目名称
  • 已申报税额什么时候缴纳
  • 已付款收到发票但没有做计提凭证
  • 钢结构施工速度快吗
  • 房地产企业城市配套费
  • 其他业务收入借贷方向会计分录
  • 苹果电脑macbookpro使用教程
  • 车船税是什么险种
  • 出售房产会计账务处理
  • 欠税不交的后果 个人
  • 联想小新Air15如何进入bois
  • php 生成opcode
  • 销售收入的暂估入账
  • fte文件怎么打开
  • 进项抵扣发票如何查询
  • 支付报刊杂志费
  • adamax优化器
  • php加载mysql
  • php使用什么开发工具
  • 增值税纳税人的相关规定
  • 上月开了红字发票当月如何申报
  • node js 安装
  • 收到外币收入怎么入账
  • 企业接受捐赠怎么入账
  • java一天速成
  • 财务软件属于什么设备
  • 固定资产怎么进行无形资产清理的
  • 通过法院拍卖取得的土地没有得到执行属于什么案件
  • 备案办税人员信息是谁
  • 可明确区分的商品什么意思
  • 当月发生业务下月开票如何做账
  • 施工企业工人工作总结
  • 收到的发票怎么做分录
  • 出租写字楼写字楼
  • 一般纳税人10万元以下附加税
  • 报关单的运费没填怎么办
  • 可供出售金融资产是指什么
  • 工会经费计提比例0.8%和2%有何区别
  • 税金及附加如何记账
  • 贷款利息天数怎么算的
  • 会计总账怎么登账
  • 32位与64位操作系统怎么区分从32位和64位的概念上进行讲述
  • win10系统qq语音说话无声音
  • ,linux
  • 电脑xp系统如何
  • win10怎么取消禁用
  • win8系统升级
  • win8补丁官网
  • 如何写出一篇游戏活动案例
  • shell脚本编写步骤
  • javascript常用语法
  • Git 创建分支提交远程分支详解
  • 深入了解的高级表达
  • python编程术语
  • javascript高级程序设计pdf下载
  • 安卓hook注入工具
  • 从重置手
  • 河南国税局变更法人流程
  • 个人所得税全年不到60000,单月超过
  • 税务延期申报最长多久
  • 车船税发票丢了怎么补办
  • 德州市国土自然资源局
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设