協議擴充套件

Swift 2.2 的一個非常有用的功能是具有擴充套件協議的能力。

當你想要在所有實現某些協議的類中使用的功能時(無需從基礎公共類繼承),它的工作方式與抽象類非常相似。

protocol FooProtocol {
    func doSomething()
}

extension FooProtocol {
    func doSomething() {
        print("Hi")
    }
}

class Foo: FooProtocol {
    func myMethod() {
        doSomething() // By just implementing the protocol this method is available
    }
}

使用泛型也可以這樣做。