extension
extension 相似于OC中的Category 在没有源代码的状况下能够给类添加方法
extension不只能够扩展类并且扩展struct enum,可是涉及修改属性的方法,须要加
mutating 关键字
定义
extension String {
mutating func withExcitment() -> String {
return self+ "!"
}
}
例子
extension String {
func backwards() -> String {
var temp = ""
for letter in self.characters.reverse() {
temp.append(letter)
}
return temp
}
}
var name = "wang kai"
name.backwards() //"iak gnaw"
extension CGPoint {
//修改属性的方法
mutating func reset() {
self.x = 0
self.y = 0
}
}
var loc = CGPoint(x: 10, y: 20)
loc.reset()