Golang インターフェースの定義と使い方の詳しい説明
Go 言語におけるインターフェース (インターフェース) とは、オブジェクトとオブジェクトの動作を定義する型のことです。抽象オブジェクトのメソッドのコレクション。インターフェイスは、オブジェクトが持つべきメソッドを定義しますが、これらのメソッドの実装方法は指定しません。この柔軟性により、インターフェイスは Go 言語の最も強力で一般的に使用される機能の 1 つになります。
Go 言語では、インターフェイスはキーワード interface
によって通常次のように定義されます:
type 接口名 interface { 方法名1(参数列表) 返回值列表 方法名2(参数列表) 返回值列表 // 更多方法... }
例、単純な動物インターフェイスを定義します:
type Animal interface { Speak() string }
上記のコードは、Speak()
メソッドを含む Animal
インターフェイスを定義します。 Speak()
メソッドを実装する型は、Animal
インターフェイスを実装するとみなされます。
インターフェイスを実装するには、型に対応するメソッドを定義するだけです。たとえば、Animal
インターフェイスを実装するために犬のタイプを定義します。
type Dog struct { Name string } func (d Dog) Speak() string { return "汪汪汪" }
上記のコードでは、Dog
タイプは Speak()## を実装します。 # メソッドであるため、
Dog 型は
Animal インターフェースを実装していると考えられます。
func LetAnimalSpeak(animal Animal) { fmt.Println(animal.Speak()) } func main() { var a Animal a = Dog{Name: "旺财"} LetAnimalSpeak(a) // 输出:汪汪汪 }
main 関数では、
Dog タイプのオブジェクトを
Animal インターフェイス タイプに割り当て、
LetAnimalSpeak 関数。
Dog 型は
Animal インターフェイスを実装しているため、プログラムは
woof woof woof を出力します。
type Move interface { Run() Jump() } type Animal interface { Speak() string Move }上記のコードでは、
Animal インターフェイスは、# を含む
Move インターフェイスをネストすることによって新しいインターフェイスを形成します。 # #Speak()
メソッドと Move
メソッドをインターフェイスに追加します。 5. 空のインターフェイス
にはメソッドが含まれていないため、任意の型を表すことができます。空のインターフェイスは、複数のタイプのデータを表す必要がある場合に非常に便利です。たとえば、fmt.Print
関数は、空のインターフェイス タイプのパラメーターを受け入れます。 <pre class='brush:go;toolbar:false;'>func PrintData(data interface{}) {
fmt.Println(data)
}
func main() {
PrintData(42) // 输出:42
PrintData("hello") // 输出:hello
}</pre>
結論
以上がGolangインターフェースの定義と使い方を詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。