位置: 编程技术 - 正文

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)

  • 出口免税进项税额转出怎么计算
  • 应收利息和利息收入的关系
  • 货没出,发票先开
  • 租办公室还要交什么税
  • 代开专用发票的企业如何享受小微免税优惠
  • 货运增值税发票抵扣条件
  • 个人处置打包债权取得的收入
  • 建筑业咨询费有哪些
  • 实收资本收到后用途
  • 股东退股分红怎么拿回
  • 非货币交易例子
  • 企业怎么申请无运输工具承运资质
  • 合同和付款单位不一致发票应该开给谁
  • 安装预算收入
  • 建筑工程安装合同
  • 国税局预缴税款在哪里看
  • 销售设备并安装
  • 个税起征点是多少啊
  • 租赁固定资产折旧计入
  • 房地产开发项目土地使用权的取得方式
  • windows11进入桌面黑屏
  • sxgdsenu.exe - sxgdsenu是什么进程 有什么用
  • php缓存机制有哪些
  • 增值税进项税额转出的情况有哪些
  • 银行结算账户的种类
  • PHP:Memcached::getDelayed()的用法_Memcached类
  • 销售货物是什么意思
  • echarts获取不到宽和高
  • 一头公牛和一头母牛,答五个字
  • 软件开发企业的税收优惠政策
  • vue2动态路由
  • 偏食和挑食会有什么不良后果?
  • 董事费如何计算个人所得税
  • 买保安服装
  • python安装后找不到了
  • 公司让员工提前离职,可以结清工资吗
  • 捐款 企业
  • 销售折让的会计科目
  • dedecms源码
  • dedecms下载
  • 报关单填制相关规范相关文件
  • powerdesigner生成pdm
  • 结转成本注意事项
  • 突然收到电子退库收入
  • 对公账户收钱要手续费吗
  • 期末留抵税额怎么填报表
  • 信息技术服务费属于什么费用
  • 固定资产是否可调剂
  • 亏本处理产品怎么做账
  • 企业取得的财政拨款
  • 持有至到期投资在资产负债表怎么填
  • 预计负债 负债 区别
  • 会展费会计分录
  • 外账会计做什么
  • 明细账设置是什么意思
  • SQLServer EVENTDATA()函数来获取DDL 触发器信息
  • sqlserver自定义函数在哪查看
  • mysql8.0无法启动
  • 使用灭火器人要站在上风口还是下风口
  • windows组合快捷键
  • uc聊天大厅
  • WIN10系统CPU占用率高
  • win7关机总是自动重启
  • win7玩穿越火线电脑应该怎么设置
  • centos6.2安装教程
  • Windows XP Vista 2006 简体中文版下载
  • win8如何查看所有程序
  • c盘越来越小了
  • linux简单常用命令
  • Android一分钟环境搭建,包含Mac、Linux、Windows
  • javascript函数大全
  • vue购物车功能
  • 苹果macos安装
  • Tasharen Fog of War v1.0战争迷雾插件的使用(含Unity5.0Bug解决)
  • 安卓手机启用暴露通知
  • jq cookie
  • Python遍历循环
  • 航天信息服务费300元
  • 北京国税电子税务局网址
  • 车辆购置税计入固定资产一起折旧吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设