


So erstellen und richten Sie Schnittstellen in Golang ein (eine kurze Analyse der Methoden)
In Golang ist Schnittstelle ein Typ, der das Verhalten von Objekten beschreibt. Durch die Definition von Schnittstellen können wir die Funktionen und Interaktionsmethoden von Objekten standardisieren, um die Interaktion verschiedener Objekttypen zu erleichtern.
In Golang besteht der Methodensatz einer Schnittstelle aus einer Reihe von Methodendefinitionen. Der Typ, der die Schnittstelle implementiert, muss alle Methoden der Schnittstelle implementieren. Bei der Implementierung einer Schnittstelle müssen wir jedoch weder die Implementierung einer Schnittstelle explizit deklarieren noch eine Klasse erben oder eine Schnittstelle implementieren. Wir müssen nur den Methodensatz der Schnittstelle implementieren. Die Schnittstelle wird in Form eines dynamischen Versands implementiert, der eine gute Flexibilität und Skalierbarkeit aufweist.
Wie erstellt und richtet man also Schnittstellen in Golang ein? Als nächstes werden wir es unter den folgenden Gesichtspunkten vorstellen.
- Schnittstelle definieren
Zuerst müssen wir die Schnittstelle definieren, den Schnittstellentyp definieren, indem wir das Schlüsselwort „type“ zur Schnittstelle hinzufügen, und den Methodensatz der Schnittstelle in Klammern definieren, zum Beispiel:
type MyInterface interface { Method1() string Method2() int }
Der obige Code definiert eine Schnittstelle mit dem Namen Der Schnittstellentyp MyInterface enthält zwei Methoden, Methode1 und Methode2. Beachten Sie, dass die in der Schnittstelle definierten Methoden keine spezifischen Implementierungskörper haben, sondern nur den Methodennamen und den Rückgabewerttyp.
- Implementieren Sie die Schnittstelle
Als nächstes müssen wir die Schnittstelle implementieren, indem wir einen Strukturtyp definieren, der den Schnittstellenmethodensatz implementiert, zum Beispiel:
type MyStruct struct{} func (m MyStruct) Method1() string{ return "Method1 is called." } func (m MyStruct) Method2() int{ return 100 }
Der obige Code definiert einen Strukturtyp namens MyStruct, der die beiden Methoden implementiert der MyInterface-Schnittstelle, Method1 und Method2. Es ist zu beachten, dass die Methode, die die Schnittstelle implementiert, den Methodennamen, die Parameterliste und den Rückgabewerttyp verwenden muss, die genau mit den in der Schnittstelle definierten übereinstimmen, um als Implementierung der Schnittstelle erkannt zu werden. In diesem Beispiel implementiert der im MyStruct-Typ festgelegte Methodensatz auch den Methodensatz von MyInterface, dh die MyInterface-Schnittstelle wird implementiert.
- Schnittstellen verwenden
Die Verwendung von Schnittstellen ist die grundlegendste Operation im Zusammenhang mit Schnittstellen in Golang. Durch die Definition einer Variablen des Schnittstellentyps können wir diese Variable verschiedenen Typen zuweisen, die die Schnittstelle implementieren, zum Beispiel:
var i MyInterface i = MyStruct{} fmt.Println(i.Method1()) fmt.Println(i.Method2())
Above The Code definiert eine Variable i vom Typ MyInterfce und weist ihr eine Variable vom Typ MyStruct zu. Da der MyStruct-Typ die MyInterface-Schnittstelle implementiert, kann ich auf alle in MyInterface definierten Methoden zugreifen. Das Ausgabeergebnis lautet:
Method1 is called. 100
Es ist zu beachten, dass dies tatsächlich der Fall ist, wenn wir eine Variable vom Typ MyStruct einer Variablen vom Typ MyInterface zuweisen Eine Kopie des Werts vom Typ MyStruct wird der Variablen i vom Typ MyInterface zugewiesen, was der Implementierung virtueller Funktionen in C++ ähnelt. Seien Sie daher vorsichtig, wenn Sie Zeigertypen zum Implementieren von Schnittstellen verwenden, denn wenn sich das Objekt, auf das eine Zeigertypvariable zeigt, ändert, kann dies Auswirkungen auf die Verfügbarkeit der Schnittstellenimplementierung haben.
- Verschachtelung von Schnittstellen
In Golang unterstützen Schnittstellen auch die Verschachtelung, also die Verschachtelung anderer Schnittstellentypen als Methodensätze in der Schnittstelle. Zum Beispiel:
type MyInterface1 interface { Method1() string } type MyInterface2 interface { MyInterface1 Method2() int } type MyStruct struct{} func (m MyStruct) Method1() string{ return "Method1 is called." } func (m MyStruct) Method2() int{ return 100 } func main() { var i MyInterface2 i = MyStruct{} fmt.Println(i.Method1()) fmt.Println(i.Method2()) }
Der obige Code definiert eine MyInterface2-Schnittstelle, die eine verschachtelte MyInterface1-Schnittstelle definiert und die Methoden der MyInterface1- und MyInterface2-Schnittstellen implementiert. Der MyStruct-Typ implementiert auch diese beiden Schnittstellen, sodass er i- und call-Methoden zugewiesen werden kann.
- Leere Schnittstelle
Wenn wir in Golang den spezifischen Typ eines Objekts nicht kennen, es aber dennoch bearbeiten möchten, können wir es dennoch mithilfe von Schnittstellen vervollständigen. Dies ist das Konzept der leeren Schnittstelle. Die leere Schnittstelle ist ein spezieller Typ in Golang. Ihr Methodensatz ist leer und kann jeden Objekttyp darstellen. Zum Beispiel:
var i interface{} i = 1 fmt.Println(i)
Der obige Code definiert eine Variable i vom Typ interface{} und weist ihr dann die Ganzzahl 1 zu. Da der Typ interface{} jeden Objekttyp darstellen kann, können wir den Wert von i ausgeben und das richtige Ergebnis erhalten.
Die oben genannten sind die grundlegenden Methoden zum Erstellen und Festlegen von Schnittstellen in Golang. Die Beherrschung der Verwendung von Schnittstellen kann den Code flexibler und skalierbarer machen und die Lesbarkeit und Wartbarkeit des Programms verbessern.
Das obige ist der detaillierte Inhalt vonSo erstellen und richten Sie Schnittstellen in Golang ein (eine kurze Analyse der Methoden). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



OpenSSL bietet als Open -Source -Bibliothek, die in der sicheren Kommunikation weit verbreitet sind, Verschlüsselungsalgorithmen, Tasten und Zertifikatverwaltungsfunktionen. In seiner historischen Version sind jedoch einige Sicherheitslücken bekannt, von denen einige äußerst schädlich sind. Dieser Artikel konzentriert sich auf gemeinsame Schwachstellen und Antwortmaßnahmen für OpenSSL in Debian -Systemen. DebianopensL Bekannte Schwachstellen: OpenSSL hat mehrere schwerwiegende Schwachstellen erlebt, wie z. Ein Angreifer kann diese Sicherheitsanfälligkeit für nicht autorisierte Lesen sensibler Informationen auf dem Server verwenden, einschließlich Verschlüsselungsschlüssel usw.

In dem Artikel wird erläutert, wie das PPROF -Tool zur Analyse der GO -Leistung verwendet wird, einschließlich der Aktivierung des Profils, des Sammelns von Daten und der Identifizierung gängiger Engpässe wie CPU- und Speicherprobleme.Character Count: 159

In dem Artikel werden Schreiben von Unit -Tests in GO erörtert, die Best Practices, Spottechniken und Tools für ein effizientes Testmanagement abdecken.

Dieser Artikel zeigt, dass Mocks und Stubs in GO für Unit -Tests erstellen. Es betont die Verwendung von Schnittstellen, liefert Beispiele für Mock -Implementierungen und diskutiert Best Practices wie die Fokussierung von Mocks und die Verwendung von Assertion -Bibliotheken. Die Articl

In diesem Artikel werden die benutzerdefinierten Typ -Einschränkungen von GO für Generika untersucht. Es wird beschrieben, wie Schnittstellen die minimalen Typanforderungen für generische Funktionen definieren und die Sicherheitstypsicherheit und die Wiederverwendbarkeit von Code verbessern. Der Artikel erörtert auch Einschränkungen und Best Practices

In dem Artikel wird das Reflect -Paket von Go, das zur Laufzeitmanipulation von Code verwendet wird, von Vorteil für die Serialisierung, generische Programmierung und vieles mehr. Es warnt vor Leistungskosten wie langsamere Ausführung und höherer Speichergebrauch, beraten die vernünftige Verwendung und am besten am besten

In diesem Artikel wird die Verwendung von Tracing -Tools zur Analyse von GO -Anwendungsausführungsfluss untersucht. Es werden manuelle und automatische Instrumentierungstechniken, den Vergleich von Tools wie Jaeger, Zipkin und Opentelemetrie erörtert und die effektive Datenvisualisierung hervorheben

In dem Artikel werden mit Tabellensteuerungstests in GO eine Methode mit einer Tabelle mit Testfällen getestet, um Funktionen mit mehreren Eingaben und Ergebnissen zu testen. Es zeigt Vorteile wie eine verbesserte Lesbarkeit, verringerte Vervielfältigung, Skalierbarkeit, Konsistenz und a
