しめ鯖日記

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

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

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