拡張機能をジェネリック型に書き込もうとしていますが、何らかの理由で機能していません。スイフト。エクステンションからジェネリックタイプを取得するには?
私は、一般的な列挙型をした:私はこの列挙にはいくつかの拡張機能を記述して、例えば列挙型の汎用のparamsで別の汎用クラスを作成したい
public enum ResponseResult<Result, Error> {
case Success(result: Result)
case Failure(error: Error?)
}
:
extension ResponseResult {
var response: Response<T> {
return Response(value: self.value)
}
}
Tは - 'されますResponseResult
クラスのResult
'汎用パラメータ。 しかし、エクステンションのジェネリックパラメータを取得する方法を理解できません。列挙型の値からパラメータを抽出するために
「T」が必要な理由は明確ではありません。それはなぜですか? – Pascal
@Pascal isはResponseクラスの汎用パラメータです。私は単純なコードの例を書こうとしています。すべてのコードを入れないようにしています。 –
拡張の 'ResponseResult' enumの' Result'ジェネリックパラメータを使いたいだけですか? 'T'の代わりに' Result'を打つだけでしたか?元の宣言の汎用パラメータは、拡張モジュールで使用可能にする必要があります。 – Hamish