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()