interfaceを使用して、interfaceを宣言する方法はどうですか?
Go言語では、typeキーワードを使用してインターフェースを宣言することができます。インターフェースは、具体的な実装はないが、一連のメソッドを定義した抽象型です。インターフェースの宣言の構文は次のようになります:
type 接口名 interface {
方法名1(参数列表) 返回值列表
方法名2(参数列表) 返回值列表
// ...
}
例えば、Animalインタフェースを宣言する場合、Speakメソッドを持つ。
type Animal interface {
Speak() string
}
このインターフェースは音を出す動物を表すものです。Speakメソッドを実装している限り、どんな種類の動物でもAnimalインターフェースの実装型と見なすことができます。インターフェースのメソッドは明示的に実装する必要はなく、メソッド名、引数リスト、返り値リストがインターフェース定義と一致していればよいです。
Animalインターフェースを実装したCatタイプの例です。
type Cat struct{}
func (c Cat) Speak() string {
return "Meow!"
}
この例では、Cat型がAnimalインタフェースのSpeakメソッドを実装し、”Meow!”という文字列を返します。
このインターフェースを使用する方法は以下の通りです。
func main() {
var animal Animal
animal = Cat{}
fmt.Println(animal.Speak()) // 输出:"Meow!"
}
main関数内で、Animal型の変数animalを定義し、それにCat型のインスタンスを割り当てました。その後、animal.Speak()メソッドを呼び出し、”Meow!”を出力しました。