Swiftでは、1つのジェネリックタイプが他のタイプから継承されていることをどのようにチェックできますか?ジェネリック型の1つがSwiftの他のジェネリック型のサブクラスであるかどうかをチェックする方法は?
私はこのコードを持っている:
class Style<U: Styleable> {
...
init<V: Styleable>(_ style: Style<V>) {
...
}
}
を私はU
がV
のサブクラスであるとき、それだけで呼び出すことができることを、このINITの内側に確認する必要があります。私はコンパイル時にこれをチェックする方法を知らない。Swiftはあるジェネリック型を他のジェネリック型のサブクラスに制限することはできない。だから私ができる唯一のことは、間違った方法で使用するとプログラムがクラッシュするようにいくつかのアサーションを使うことです。
これを解決する方法はありますか?
@MartinR:私は間違った例を与えた。私が解決しようとした本当の問題は少し難しかったです。編集した質問を確認してください。 –