特定の型を要素に持つArrayにプロパティやメソッドを追加したい 「特定の型を要素に持つArrayにプロパティやメソッドを追加したい」というケースがあると思います。 例えば、要素がInt型のArrayに対して合計値を取得するtotalというプロパティを追加するケースを考えます。 Swift 3.1 Swift 3.1では以下のようにジェネリックパラメーターと具象型が等しいという制約が書けるようになりました! extension Array where Element == Int { var total: Element { return reduce(0, +) } } let intArray = [1, 2, 3, 4, 5] print(intArray.total) // 15 Swift 3.1以前 これまではextension Array where Element == I