しめ鯖日記

swift, iPhoneアプリ開発, ruby on rails等のTipsや入門記事書いてます

Swift再入門22 − The Swift Programming Languageを読んでみる

この記事では「The Swift Programming Language」を1から読んだ感想とか発見を書いてみようと思います。
「The Swift Programming Language」とはSwiftの公式ドキュメントでiBooksや下ページで見る事ができます。

The Swift Programming Language (Swift 2.1): About Swift

読んだ所

今回はExtensionsという項目を読みました。

The Swift Programming Language (Swift 2.1): Extensions

学んだこと

Computed Propertiesの追加

extensionでは、Computed Propertiesを追加する事ができます。

struct MyStruct {
}

extension MyStruct {
    var prop1 = "" // これはエラー
    var prop2: String { return "" } // これはOK
}

その他追加できるもの

メソッドの追加ができます。

struct MyStruct {
}
extension MyStruct {
    func method() {}
}

Initializerを追加する事もできます。

struct MyStruct {
}
extension MyStruct {
    init(name: String) {}
}

subscriptも追加できます。

struct MyStruct {
}
extension MyStruct {
    subscript(num: Int) -> Int {
        return 0
    }
}

条件付きのextension

Swiftの標準メソッドを見たところ条件付きでextensionを作る事ができるようです。 この辺りどう使うか・何ができるかがまだ分かってないので後日勉強しようと思います。

protocol MyValueProtocol {}

protocol MyProtocol {
    typealias MyValue : MyValueProtocol
}
extension MyProtocol where MyValue : MyValueProtocol {
}