ホームページ  >  記事  >  バックエンド開発  >  インスタンス化インターフェース

インスタンス化インターフェース

WBOY
WBOY転載
2024-02-08 21:08:41359ブラウズ

インスタンス化インターフェース

php エディターの Youzi が、インスタンス化インターフェースとは何かを紹介します。オブジェクト指向プログラミングでは、インターフェイスはクラスが実装する必要があるメソッドを定義する規則です。インターフェイスのインスタンス化とは、インターフェイスで定義されたメソッドを実装するクラスのオブジェクトを作成することを指します。インターフェイスをインスタンス化することにより、ポリモーフィック機能を利用して、異なるクラスが同じインターフェイスを実装し、実際の状況に応じて対応するメソッドを書き換えることができます。インスタンス化インターフェイスを使用すると、コードの柔軟性と拡張性が高まり、コードの再利用性と保守性が向上します。インスタンス化されたインターフェースの使い方と注意点を詳しく見ていきましょう。

質問内容


初心者です。私が理解できないことの 1 つは、インターフェイスを個別にインスタンス化したいときにコンパイル エラーが発生するのに、インターフェイスの配列形式を使用した場合にはコンパイル エラーが発生しない理由です。

リーリー

この複合リテラルは、指定された値を持つ新しい構造体インスタンスを割り当てます。


回避策


中括弧 {} スライス、構造体、配列、マップのリテラル値に使用されます。これらはインターフェイス値には使用されません。インターフェイス型のリテラル値が必要な場合は、"型変換" を呼び出す () 構文を使用する必要があります。

###例えば:### リーリー

#xxx

のタイプは

myinterface です。 コードを修正するには: リーリー

Go ではインターフェイス値への直接代入が可能であり、変換は暗黙的であるため、型変換を完全に削除することもできます。より具体的には、

Assignability

ルールは次のようになります (わかりやすくするために編集しました):

t がインターフェイス型で、x が t を実装する場合、v 型の値 x は t 型の変数に代入できます。

したがって、このコードも機能します:

リーリー

スライス、構造体、マップなどの複合リテラルでは、指定された値は、変数であるかのように、それぞれのインデックス、フィールド、またはキーに

が割り当てられたものとして扱われることに注意してください。分配ルールの適用。

以上がインスタンス化インターフェースの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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