Heim  >  Artikel  >  Backend-Entwicklung  >  So implementieren Sie die Golang-Schnittstelle

So implementieren Sie die Golang-Schnittstelle

青灯夜游
青灯夜游Original
2022-12-23 10:54:495800Durchsuche

In Golang können Sie die Anweisung „Typschnittstelle Typname Schnittstelle {Methodenname 1 (Parameterliste 1) Rückgabewertliste 1 Methodenname 2 (Parameterliste 2) Rückgabewertliste 2 ...}“ verwenden, um die Schnittstelle zu deklarieren ; wenn „Methode“ Wenn der erste Buchstabe des Namens großgeschrieben wird und der erste Buchstabe des Schnittstellentypnamens ebenfalls großgeschrieben wird, kann auf diese Methode über Code außerhalb des Pakets zugegriffen werden, in dem sich die Schnittstelle befindet.

So implementieren Sie die Golang-Schnittstelle

Die Betriebsumgebung dieses Tutorials: Windows 7-System, GO Version 1.18, Dell G3-Computer.

Die Go-Sprache ist keine „traditionelle“ objektorientierte Programmiersprache: Sie verfügt nicht über die Konzepte von Klassen und Vererbung.

Aber die Go-Sprache verfügt über ein sehr flexibles Schnittstellenkonzept, durch das viele objektorientierte Funktionen implementiert werden können. Viele objektorientierte Sprachen haben ähnliche Schnittstellenkonzepte, aber das Einzigartige am Schnittstellentyp in der Go-Sprache ist, dass er eine implizite Implementierung erfüllt. Das heißt, es ist nicht notwendig, alle zufriedenstellenden Schnittstellentypen für einen bestimmten konkreten Typ zu definieren; es reicht aus, nur über die erforderlichen Methoden zu verfügen.

Mit diesem Design können Sie einen neuen Schnittstellentyp erstellen, der vorhandene konkrete Typen erfüllt, ohne die Definitionen dieser Typen zu ändern. Dieses Design ist besonders nützlich, wenn die von uns verwendeten Typen aus Paketen stammen, die nicht unter unserer Kontrolle stehen.

Schnittstellentypen sind Abstraktionen und Verallgemeinerungen des Verhaltens anderer Typen. Da Schnittstellentypen nicht an bestimmte Implementierungsdetails gebunden sind, können wir unsere Funktionen durch diese Abstraktion flexibler und anpassungsfähiger machen.

Die Schnittstelle ist eine zwischen beiden Parteien vereinbarte Kooperationsvereinbarung. Der Schnittstellenimplementierer muss sich nicht darum kümmern, wie die Schnittstelle verwendet wird, und der Aufrufer muss sich nicht um die Implementierungsdetails der Schnittstelle kümmern. Eine Schnittstelle ist ein Typ und eine abstrakte Struktur, die das Format, den Typ und die Struktur der enthaltenen Daten nicht offenlegt.

Format der Schnittstellendeklaration

Jeder Schnittstellentyp besteht aus mehreren Methoden. Der formale Code der Schnittstelle lautet wie folgt:

type 接口类型名 interface{
    方法名1( 参数列表1 ) 返回值列表1
    方法名2( 参数列表2 ) 返回值列表2
    …
}

Erklärung jedes Teils:

  • Name des Schnittstellentyps: Verwenden Sie „Typ“, um die Schnittstelle als benutzerdefinierten Typnamen zu definieren. Bei der Benennung von Go-Sprachschnittstellen wird normalerweise „er“ nach dem Wort hinzugefügt. Beispielsweise heißt die Schnittstelle mit Schreiboperationen „Writer“, die Schnittstelle mit String-Funktion heißt „Stringer“, die Schnittstelle mit Schließfunktion heißt „Closer“ usw.

  • Methodenname: Wenn der erste Buchstabe des Methodennamens großgeschrieben wird und der erste Buchstabe des Schnittstellentypnamens ebenfalls großgeschrieben wird, kann auf diese Methode durch Code außerhalb des Pakets zugegriffen werden, in dem sich die Schnittstelle befindet.

  • Parameterliste, Rückgabewertliste: Die Parametervariablennamen in der Parameterliste und der Rückgabewertliste können ignoriert werden, zum Beispiel:

type writer interface{
    Write([]byte) error
}

Gemeinsame Schnittstellen und Schreibmethoden in der Entwicklung

Bereitgestellt von Go-Sprache In vielen Paketen gibt es Schnittstellen, beispielsweise die im io-Paket bereitgestellte Writer-Schnittstelle:

type Writer interface {
    Write(p []byte) (n int, err error)
}

Diese Schnittstelle kann die Write()-Methode aufrufen, um ein Byte-Array ([]Byte) zu schreiben, und der Rückgabewert gibt die Zahl an Anzahl der geschriebenen Bytes (n int) und Fehler, die auftreten können (err error).

In ähnlicher Weise gibt es eine Schnittstelle, die ein Objekt in Form einer Zeichenfolge anzeigt. Solange der Typ dieser Schnittstelle implementiert ist, kann beim Aufruf der String()-Methode die dem Objekt entsprechende Zeichenfolge abgerufen werden. Im fmt-Paket ist es wie folgt definiert:

type Stringer interface {
    String() string
}

Die Stringer-Schnittstelle wird in der Go-Sprache sehr häufig verwendet und ihre Funktion ähnelt der ToString-Operation in der Java- oder C#-Sprache.

Die Anzahl der Methoden in jeder Schnittstelle der Go-Sprache wird nicht sehr groß sein. Die Go-Sprache hofft, ihre eigenen Funktionen über eine Schnittstelle genau zu beschreiben und einfache Schnittstellen durch die Einbettung und Kombination mehrerer Schnittstellen zu komplexen Schnittstellen zu erweitern. In späteren Abschnitten dieses Kapitels wird beschrieben, wie Schnittstellen mithilfe von Komposition erweitert werden.

【Verwandte Empfehlungen: Go-Video-Tutorial, Programmierunterricht

Das obige ist der detaillierte Inhalt vonSo implementieren Sie die Golang-Schnittstelle. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn