In Golang ist eine Schnittstelle (Interface) ein Typ, der den Satz von Methoden definiert, die ein Objekt haben sollte. Durch die Verwendung von Schnittstellen können wir Objekte auf abstrakte Weise beschreiben, ohne uns um die spezifische Implementierung des Objekts kümmern zu müssen.
Das Deklarationsformat der Schnittstelle ist wie folgt:
Typ Schnittstellenname Schnittstelle {
方法1(参数1 类型1, 参数2 类型2, ...) (返回值1 类型1, 返回值2 类型2, ...) 方法2(参数1 类型1, 参数2 类型2, ...) (返回值1 类型1, 返回值2 类型2, ...) ...
}
wobei der Schnittstellenname ein beliebiger zulässiger Bezeichner sein kann; die Methode kann null oder mehr Parameter und null oder mehr Rückgabewerte haben. und die Arten von Parametern und Rückgabewerten können beliebige Typen sein, einschließlich Schnittstellentypen.
Hier ist ein einfaches Beispiel, das zeigt, wie man eine Schnittstelle definiert und damit zwei verschiedene Typen beschreibt:
package main
import "fmt"
// Definieren Sie die Schnittstelle
type Shape interface {
Area() float64
}
// Definieren Sie die Struktur Circle
type Circle struct {
X, Y, Radius float64
}
// Definieren Sie die Methode Area(), um die Shape-Schnittstelle zu implementieren
func (c Circle) Area() float64 {
return 3.14 * c.Radius * c.Radius
}
/ / Definieren Sie die Struktur Rechteck
Typ Rechteckstruktur {
X1, Y1, X2, Y2 float64
}
// Definieren Sie die Methode Area(), um die Shape-Schnittstelle zu implementieren
func (r Rechteck) Area() float64 {
return (r.X2 - r.X1) * (r.Y2 - r.Y1)
}
// Definieren Sie die Funktion GetArea akzeptiert einen Shape-Typparameter und ruft seine Area()-Methode auf Shape wird definiert und es werden zwei verschiedene Typen, Circle und Rechteck, definiert, die beide die Area()-Methode der Shape-Schnittstelle implementieren. Wir definieren außerdem eine Funktion namens GetArea, die einen Parameter vom Typ Shape akzeptiert und seine Area()-Methode aufruft, um die Fläche zu berechnen.
Das obige ist der detaillierte Inhalt vonSo verwenden Sie die Golang-Schnittstelle. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!