この記事では「The Swift Programming Language」を1から読んだ感想とか発見を書いてみようと思います。
「The Swift Programming Language」とはSwiftの公式ドキュメントでiBooksや下ページで見る事ができます。
The Swift Programming Language (Swift 2.1): About Swift
読んだ所
今回はGenerics
という項目を読みました。
The Swift Programming Language (Swift 2.1): Generics
学んだこと
関数でGenericsを使う
下のように使います。
func method<T, U>(a: T, b: U) { print(a) print(b) } method(1, b: "")
制約付きGenerics
Genericsはプロトコルに適応してるかどうかの制約を付ける事ができます。
protocol Protocol {} class MyClass: Protocol {} func method<T: Protocol>(a: T) { print(a) } method(MyClass())
typealiasの型で制約を付ける事もできます。
protocol Protocol { typealias Element } func method<T: Protocol where T.Element == Int>(value: T) { print(value) }