| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 移动开发 -> Swift基础入门知识学习(23)-扩展-讲给你懂 -> 正文阅读 |
|
[移动开发]Swift基础入门知识学习(23)-扩展-讲给你懂 |
Swift基础入门知识学习(22)-类型转换(型别转换)-讲给你懂 理解难度 扩展(extension)是 Swift 一个重要的特性,它可以为已存在的枚举、结构体、类别和协议添加新功能,而且不需要修改该类型原本定义的代码。扩展也可以使用在内建的类型上,像是Int、Double或String等等。 扩展允许你将方法添加到现有类型中,以使其做最初设计不做的事情。 Swift 的扩展可以:
扩展语法使用extension关键字来定义一个扩展,格式如下:
当你对一个已存在的类型新增一个扩展之后,扩展的新功能可以立即给该类型的所有实例使用,即使这个实例在定义扩展前就已经生成了也是可以。 另外,扩展也可以让一个已有的类型遵循一个或多个协议,格式就如同结构体及类别一样:
计算属性扩展可以对内建的类型增加计算实例属性与计算类型属性。下面例子为内建的Double类型增加了 3 个计算实例属性,用来表示常见的距离单位:
定义好新增的扩展之后,就可以直接使用,使用方法就如同普通的属性一样使用点语法再紧接着属性名称,如下:
扩展不能新增储存属性,也不能为已有的属性添加属性观察器(property observer)。 方法扩展可以为已有的类型新增实例方法与类型方法。以下例子为内建的Int类型新增一个实例方法:
可变实例方法(变异实例方法)扩展也可以新增变异实例方法,与一般变异方法一样在前面加上mutating关键字,下面例子为内建的Int类型新增一个变异实例方法:
构造器(建构器)扩展能为类别新增便利构造器(convenience initializer),但不能新增指定构造器(designated initializer)跟解构器(deinitializer)。 以下例子为一个结构体新增一个构造器。如果没有为结构体定义构造器时,结构体会有一个自动生成的成员逐一构造器(memberwise initializer),而这边因为是使用扩展为结构体新增构造器,所以原本的成员逐一构造器仍然可以使用:
使用扩展新增一个新的构造器时,仍然需要确保建构过程中的每一个实例的完全初始化。 下标扩展可以为已有的类型新增下标。下面例子为内建的Int类型增加下标:
嵌套类型(巢状类型)扩展可以为已有的枚举、结构体和类别新增嵌套类型(巢状类型)。以下为内建的 Int 类型内新增一个枚举的扩展:
扩展是一个好用的东西。也可以找到很多别人已经写好的扩展来用。 了解概念,就好拿别人的轮子来用。 |
|
移动开发 最新文章 |
Vue3装载axios和element-ui |
android adb cmd |
【xcode】Xcode常用快捷键与技巧 |
Android开发中的线程池使用 |
Java 和 Android 的 Base64 |
Android 测试文字编码格式 |
微信小程序支付 |
安卓权限记录 |
知乎之自动养号 |
【Android Jetpack】DataStore |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 8:59:11- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |