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