Swift学习 下标脚本subscript和类扩展Extension

一、下标脚本(subscript)
1、在Swift中操作字符串,并不是能特别方便地使用索引来定位到字符串的某一个具体值,也不是特别方便能取得字符串,我们就实现一个我们自己的字符串类,采用下标脚本可以来获取想要的结果。(类似后面的类拓展,OC语言中的Extension)。下标脚本语言其实类似于”[]”符号的重载。
2、注意的地方
(1)下标脚本允许任意数量的参数作为索引,每个输入参数的类型也没有限制
(2)返回值可以是任何类型
(3)输入参数可以使用可变参数,但是输入参数/输出参数或这给参数设置默认值是不允许的!
(4)下标脚本也可以用来做字符串替换,替换一个字符串里面的某个或某一些字符
二、下标脚本的运用小demo

Swift学习 下标脚本subscript和类扩展Extension_第1张图片
Swift学习 下标脚本subscript和类扩展Extension_第2张图片

运行结果:

二、类扩展(Extensio)
1、继承可以给类添加新功能,扩展也同样可以实现这样的效果,即使我们拿不到要扩展的类的源码也可以。
2、扩展语法可以完成以下事情
(1)给已有的类添加计算属性和静态计算属性
(2)定义新的实例方法和类型方法
(3)提供新的构造器
(4)定义下标脚本
(5)使一个已有的类符合某个协议。
3、举例:对于String类的扩展,基于subscript
Swift学习 下标脚本subscript和类扩展Extension_第3张图片

输出结果:
Swift学习 下标脚本subscript和类扩展Extension_第4张图片

4、距离:对于Double类的扩展,基于subscript

运行结果:
Swift学习 下标脚本subscript和类扩展Extension_第5张图片

三、下标脚本(subscript)和类扩展(Extension)的总结
1、实现思路上: 类扩展的代码和下表脚本的代码思路是一样的,不过实现思路稍微不同。在下标脚本中,我们实现一个名为Substring的类,并增加了一个中间属性str,用于我们保存所使用的字符串。而在类扩展中,我们看到,不需要中间变量str属性来保存字符串,直接用self就可以引用本身。
2、代码使用上: 扩展,无论是声明还是调用,都更加简洁,不需要特意实例化,基于现有的类代码就可以。

你可能感兴趣的:(swift,extension,subscript,下标脚本,类扩展)