この記事では「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 { }