Swift--14类型扩展

Swift--14类型扩展,第1张

概述/* 功能: 扩展就是向一个已有的类、结构体或枚举类型添加新功能。 这包括在没有权限获取原始源代码的情况下扩展类型的能力。 类似于OC中的分类(Swift的扩展没有名字)。 语法: extension 类型 {     扩展内容 } 作用: 1、添加计算型属性和计算静态属性 2、定义实例方法和类型方法 3、提供新的构造方法 4、定义下标 5、定义和使用新的嵌套类型 6、使一个已有类型符合某个接口

/*

功能:

扩展就是向一个已有的类、结构体或枚举类型添加新功能。

这包括在没有权限获取原始源代码的情况下扩展类型的能力。

类似于OC中的分类(Swift的扩展没有名字)


语法:

extension 类型 {

扩展内容

}

作用:

1、添加计算型属性和计算静态属性

2、定义实例方法和类型方法

3、提供新的构造方法

4、定义下标

5、定义和使用新的嵌套类型

6、使一个已有类型符合某个接口

*/


//以下标方式访问字符串中的字符

extension String {

//实现此方法可以通过下标方式访问成员

subscript (i: Int) -> Character {

get {

return self[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 {

static let stu: Student = Student()

}

class func defaultStudent() -> Student {

return TempType.stu

}

#else

class func defaultStudent() -> Student {

struct TempType {

static let stu: Student = Student()

}

#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--14类型扩展所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1062857.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存