個人的に開発中によく遭遇したジェネリクスでのエラーあたりについてまとめてみました。 なお、Swiftコンパイラテストによる、実際にコンパイルできる/できない例は次のテストケースを参照してください。 https://github.com/apple/swift/blob/a048b078e37dfafc0e188bb8c6f3f50f5f796494/test/decl/ext/generic.swift TL;DR ジェネリックパラメータは制限がきびしい 制約では==は使えない 準拠要求には非プロトコル型は使えない 要求節と継承節を同時につけられない Selfはプロトコル拡張でしか使えない 内部クラスをジェネリッククラスにしたり、ジェネリッククラスに内部クラスを持たせたりできない 用語 まずはエラーメッセージ内でよく出てくる単語をまとめてみます。 requirement-clause: (
![Swift 2.1のジェネリクスでできないことまとめ](https://cdn-ak-scissors.b.st-hatena.com/image/square/66e0f0177edcca630bd1674562d6cfb7a54f7dd2/height=288;version=1;width=512/https%3A%2F%2Fblogger.googleusercontent.com%2Fimg%2Fb%2FR29vZ2xl%2FAVvXsEg3m6lOqRPYN4ffLfni5gBZOtVVGeAwzXdmegrlKm86d86KmZBDFxGfGSUfdxHdYucj3M8-P_hdw5_RWrIS3_LEZEM_OmW-dUAWT7ALlWmMinj468Ewkt2BpfrjLfaic5qBQI1NXP8WfQY%2Fw1200-h630-p-k-no-nu%2FP2121438.jpg)