ホームページ  >  記事  >  バックエンド開発  >  これはジェネリックの有効な使用例ですか?

これはジェネリックの有効な使用例ですか?

PHPz
PHPz転載
2024-02-06 08:10:12523ブラウズ

これはジェネリックの有効な使用例ですか?

質問の内容

私のコードには、次のような繰り返しの作業がたくさんあります。

リーリー

私の問題は、異なる数/型のパラメータを持つ新しい fp 型を追加するたびに、このメソッドを再定義する必要があることです。そのため、コード内でデコレータを 4 ~ 5 回再定義することになります。もう少し作業がかかるかもしれません。

をデコレータに置き換えたい リーリー

そして fp に型をアサートさせます。しかし、インターフェイスを使用しないことやパフォーマンスの問題を引き起こすことをよく見てきたため、これが問題を引き起こすかどうか、悪い使用例であるかどうかはわかりません。


正解


何らかの理由で、ジェネリックは役に立ちません。特にジェネリックは型に対してのみ役に立ち、パラメータには役に立ちません数量### 助けにならない。個人的には、私はこの問題に別の方法でアプローチします: リーリー クロージャを使用して呼び出します:

リーリー

これは呼び出し側では少し冗長ですが、任意の数またはタイプのパラメータ、および任意の数またはタイプの戻り値など、あらゆる関数シグネチャに対して完全に機能します。メソッド呼び出しでも機能します。結果に基づいてロジックを実行しているようですので、次のこともできます:

リーリー

装飾された関数がその bool よりも多くの戻り値を持っている場合、または他のロジックを使用したい場合 (たとえば、エラーを返した場合に

を使用して bool に変換したい場合でも) は機能します。 !=)。なし

)。

以上がこれはジェネリックの有効な使用例ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はstackoverflow.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。