Swift--14类型扩展
来源:互联网 发布:c语言经典书 编辑:程序博客网 时间:2024/06/11 17:42
/*
功能:
扩展就是向一个已有的类、结构体或枚举类型添加新功能。
这包括在没有权限获取原始源代码的情况下扩展类型的能力。
类似于OC中的分类(Swift的扩展没有名字)。
语法:
extension 类型 {
扩展内容
}
作用:
1、添加计算型属性和计算静态属性
2、定义实例方法和类型方法
3、提供新的构造方法
4、定义下标
5、定义和使用新的嵌套类型
6、使一个已有类型符合某个接口
*/
//以下标方式访问字符串中的字符
extension String {
//实现此方法可以通过下标方式访问成员
subscript (i:Int) -> Character {
get {
returnself[characters.index(startIndex, offsetBy: i)]
}
set {
let index =characters.index(startIndex, offsetBy: i)
self.remove(at: index)
self.insert(newValue, at: index)
}
}
}
var str = "abc"
print(str[0])// a
str[0] ="A"
print(str)//Abc
//练习:给Int添加方法实现通过下标获取该整数对应的位上的值,计数从后往前
//如:print(1234[1]),结果将打印3
class Student {
var name:String = ""
var age:Int = 0
}
extension Student {
#if true
//添加类方法(单例方法)
struct TempType {
staticlet stu: Student =Student()
}
classfunc defaultStudent() ->Student {
returnTempType.stu
}
#else
classfunc defaultStudent() ->Student {
struct TempType {
staticlet stu: Student =Student()
}
returnTempType.stu
}
#endif
}
var stu1 = Student.defaultStudent()
stu1.age =20
var stu2 = Student.defaultStudent()
print(stu2.age)//20
//一个扩展可以扩展一个已有类型,使其能够适配一个或多个协议
protocol TestProtocol {
func test();
}
extension Student:TestProtocol {
func test() {
print("test method")
}
func extensionFunc() {
print("扩展方法")
}
}
//使用扩展的协议方法
stu2.test()//test method
//使用扩展的普通方法
stu2.extensionFunc()//扩展方法
- Swift--14类型扩展
- swift类型扩展
- [Swift开发实战]- 类型的扩展
- swift为可选类型添加扩展
- Swift的可选链,类型转换和扩展
- [Swift]扩展
- Swift-扩展
- Swift 扩展
- Swift-扩展
- swift 扩展
- Swift 扩展
- swift 协议和扩展
- Swift-协议和扩展
- Swift 扩展(十七)
- Swift扩展(Extension)
- Swift扩展(Extensions)
- 20.Swift-扩展
- Swift教程之扩展
- struts2开发步骤
- hive collect_set,lateral view,explode 实现行列转换
- linux网络通讯模型
- Appium链接天猫盒子
- ubuntu 16.04安装navicat
- Swift--14类型扩展
- BZOJ1069: [SCOI2007]最大土地面积
- ajaxfileupload.js问题汇总及解决 附修复版下载
- Redis学习博客
- sparkGc
- Python中 sys.argv[]的用法
- rdis-py 2.4.13 documents
- Collections.sort() 排序算法 源码简介
- ubuntu 16.04安装 navicat