近年、Golang (Go 言語) は開発者の間でますます人気が高まっており、多くのインターネット企業が開発言語として選択するようになりました。 Golang は、シンプルかつ効果的なプログラミング言語メカニズムを提供し、インターフェイスの概念をサポートします。 Golang においてインターフェースは非常に重要な概念であり、開発者が習得しなければならない部分でもあります。
この記事では、インターフェイスの定義と実装、インターフェイスのネスト、インターフェイスの組み合わせ、インターフェイスを実装するためのカスタム タイプなどの知識ポイントを含む、Golang の「インターフェイス」について次の側面から説明します。
インターフェイスの定義は非常に簡単です。たとえば、interface
キーワードを使用するだけです。
type Animal interface { Eat() Sleep() }
上記のコードは次のように定義します。 Animal
のインターフェイスには、Eat()
と Sleep()
という 2 つのメソッドがあります。
インターフェースの実装は、インターフェース内のすべてのメソッドを実装するクラスと同等です。 Golang では、クラスはインターフェイスの実装とみなされるために、インターフェイスで宣言されたすべてのメソッドを実装するだけで済みます。例:
type Cat struct { Name string } func (c Cat) Eat() { fmt.Printf("%s is eating.\n", c.Name) } func (c Cat) Sleep() { fmt.Printf("%s is sleeping.\n", c.Name) }
上記のコードでは、クラス Cat
が定義され、Animal
インターフェイスのすべてのメソッドが実装されています。 Cat
のインスタンスを作成し、それを Animal
として使用すると、正常に動作します。例:
var animal Animal animal = Cat{"Tom"} animal.Eat() animal.Sleep()
上記のコードでは、Cat
構造のインスタンスが Animal
に割り当てられ、その後 Eat()## を呼び出します。 # および
Sleep() メソッドを使用してインターフェイスを実装します。
type Cat interface { Eat() Sleep() } type Animal interface { Cat Run() }
Animal インターフェースがネストされています。
Cat インターフェースが設定されました。これは、
Animal インターフェイスに
Eat() メソッドと
Sleep() メソッド、および
Run() メソッドが追加されたことを意味します。
type Bird interface { Fly() Swim() } type Animal interface { Eat() Sleep() } type Creature interface { Animal Bird }
Bird、
Animal、
Creature の 3 つのインターフェイスが定義されています。このうち、
Creature は、
Animal と
Bird という 2 つのインターフェイスを組み合わせたものです。
Creature インターフェイスは 2 つのインターフェイス
Animal と
Bird を継承しているため、これら 2 つのインターフェイスのすべてのメソッドも備えています。
type MyInt int func (m MyInt) Eat() { fmt.Println("Eating", m) } func (m MyInt) Sleep() { fmt.Println("Sleeping", m) }
MyInt 型が定義されており、
Animal インターフェイスの
Eat() と ## は次のようになります。 #Sleep()
メソッド。ここで MyInt
のインスタンスを作成し、それを Animal
として使用すると、これも正常に動作します: <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">var animal Animal
animal = MyInt(10)
animal.Eat()
animal.Sleep()</pre><div class="contentsignin">ログイン後にコピー</div></div>
これまで、定義を理解したと述べてきました。 Golang でのインターフェイスの実装、ネスト、組み合わせ、カスタム タイプ。重要なプログラミング概念として、Golang ではインターフェイスも非常に重要です。インターフェイスに関連する知識を習得すると、Golang プログラミング言語をより適切に使用してアプリケーションを開発することができます。
以上がgolangでインターフェースを実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。