2
に再帰的なジェネリック型を宣言することはできません。その理由は、commandSetT
をこの基本タイプのサブクラスにする必要があるからです。は、私が以前にC#での再帰的なジェネリッククラスを宣言したスウィフト
public class CommandSet<commandSetT, commandT : Command> : CommandSetProtocol
where commandSetT : CommandSet<commandSetT, commandT>,
commandT : Command
{
}
しかし、コンパイラはスーパークラス制約が再帰的であると不平を言っています。
私はcommandSetT
はこのクラスのサブクラスであることを確認したいので、まあ、はい、それはです。
別に「うまくスウィフトは、C#ではありません」のような明白なコメントから、私は本当にこの要件を強制する方法任意のアイデアを持っている人から話を聞くしたいと思います。
私はあなたのデータモデルを再考すべきだと思う); tは、なぜ知っています。どのような問題を解決しようとしていますか?ジェネリックパラメータの型を定義できるようにする - それはロードマップ[スウィフトジェネリック宣言](https://github.com/apple/swift/blob/master/docs/GenericsManifesto.md) –
に見えます基本クラスから派生しなければならないようにします。 –
@CodeDifferentにあるよう –