LoginSignup
7

More than 5 years have passed since last update.

posted at

updated at

Swiftのジェネリクス型を継承したときの挙動

ジェネリクス型を継承ときに、継承したクラスで親のジェネリクス型を記述できないかと思ったのですが、以下のように記述してもコンパイルエラーになってしまいました。

class Foo<T> {

}

class Bar : Foo<Int> {

}

以下コンパイルエラー文です。

Classes derived from generic classes must also be generic

継承したクラスでもジェネリクスを定義する必要があります。

class Foo<T> {

}

class Bar<T>: Foo<T> {

}

毎回ジェネリクス型を明示するのが面倒な場合はtypealiasで定義してエイリアスで記述することもできます。

typealias BarClass = Bar<Int>

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
7