任意のチャネルタイプのタイプ制約を定義する方法

WBOY
リリース: 2024-02-13 09:40:09
転載
851 人が閲覧しました

任意のチャネルタイプのタイプ制約を定義する方法

PHP の型制約は、関数またはメソッドのパラメーターで受け入れられるパラメーターの型を定義できる強力な機能です。基本的なデータ型に限定されるだけでなく、PHP ではカスタム クラス、インターフェイス、配列、反復可能なオブジェクトの型制約を定義することもできます。この記事では、コードをより適切に制御および保護するために、任意のチャネル タイプの型制約を定義する方法を紹介します。初心者でも経験豊富な開発者でも、これらのヒントはコードをより読みやすく、保守しやすくするのに役立ちます。

質問の内容

指定されたチャネルの使用率を返す関数を定義しようとしています:

リーリー

問題は、func シグネチャを変更しないと、これが最初のチャネルでは機能するが、2 番目と 3 番目のチャネルでは機能しないことです。ただし、署名を変更する場合は、受信のみまたは送信のみのチャネルを選択する必要があります。ゼロパスチャネルを定義する方法はありますか?例えば。読み取りも書き込みもできません。cap 関数と len 関数を使用したいだけです。 理想的には、channelusagepct はこれら 3 つのケースのいずれでも機能するはずです。

回避策

チャネルの可能な 3 つの形式すべてを許可するには、個別の型制約を定義する必要があります。

リーリー

これには、使用時に t の型を使用して型制約をインスタンス化する必要があります。これは、別の型パラメーターを使用して行うことができます:

リーリー

インスタンス化のため、型全体を推論することはできませんが、チャネル要素の型のみを指定する必要があります。

リーリー

https://www.php.cn/link/ca279b8542ab30bd43469423ce703e66

以上が任意のチャネルタイプのタイプ制約を定義する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:stackoverflow.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!