第2部分 故事的进阶要素 - 编程语言Swift的进阶部分
13 扩展
13.1 概念通俗讲解
扩展的作用是为已存在的类、结构体、枚举或者协议类型添加新的功能。
例如,String是一个结构体,我们可以为它实现一个新的方法,用来截取字符串。
13.2 定义简洁介绍
扩展是用extension关键字来定义。
extension 类名{
}
这里的类名也可以是结构体名,枚举名,协议名。
举例
通过扩展为String结构体实现一个新的方法,用来截取字符串。
extension String{
//为String实现了一个新的方法,截取字符串中的一段字符。
func subString(with r: Range<Int>) -> String {
let start = self.index(startIndex, offsetBy: r.lowerBound)
let end = self.index(startIndex, offsetBy: r.upperBound)
return String(self[start..<end])
}
}
使用
var talking = "今天是2018年10月1日"
扩展了String的新方法subString就可以直接使用了,下面的代码是截取 “2018” 的字符串出来。
var subTalking = talking.subString(with: 3..<7)
这里r.lowerBound和r.upperBound是系统的结构体Range的方法,可以直接使用。
注:本人水平和能力有限,如果哪些地方写错了,请大家给我反馈,我会及时修改。