Heim Backend-Entwicklung Golang So erstellen und richten Sie Schnittstellen in Golang ein (eine kurze Analyse der Methoden)

So erstellen und richten Sie Schnittstellen in Golang ein (eine kurze Analyse der Methoden)

Apr 13, 2023 pm 06:34 PM

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.

  1. 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
}
Nach dem Login kopieren

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.

  1. 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
}
Nach dem Login kopieren

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.

  1. 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())
Nach dem Login kopieren

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
Nach dem Login kopieren

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.

  1. 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())
}
Nach dem Login kopieren

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.

  1. 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)
Nach dem Login kopieren

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!

Erklärung dieser Website
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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Was sind die Schwachstellen von Debian Openensl Was sind die Schwachstellen von Debian Openensl Apr 02, 2025 am 07:30 AM

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.

Wie verwenden Sie das PPROF -Tool, um die Go -Leistung zu analysieren? Wie verwenden Sie das PPROF -Tool, um die Go -Leistung zu analysieren? Mar 21, 2025 pm 06:37 PM

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

Wie schreibt man Unit -Tests in Go? Wie schreibt man Unit -Tests in Go? Mar 21, 2025 pm 06:34 PM

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

Wie schreibe ich Scheinobjekte und Stubs zum Testen in Go? Wie schreibe ich Scheinobjekte und Stubs zum Testen in Go? Mar 10, 2025 pm 05:38 PM

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

Wie kann ich benutzerdefinierte Typ -Einschränkungen für Generika in Go definieren? Wie kann ich benutzerdefinierte Typ -Einschränkungen für Generika in Go definieren? Mar 10, 2025 pm 03:20 PM

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

Erläutern Sie den Zweck von Go's Reflect Package. Wann würden Sie Reflexion verwenden? Was sind die Leistungsauswirkungen? Erläutern Sie den Zweck von Go's Reflect Package. Wann würden Sie Reflexion verwenden? Was sind die Leistungsauswirkungen? Mar 25, 2025 am 11:17 AM

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

Wie kann ich Tracing -Tools verwenden, um den Ausführungsfluss meiner GO -Anwendungen zu verstehen? Wie kann ich Tracing -Tools verwenden, um den Ausführungsfluss meiner GO -Anwendungen zu verstehen? Mar 10, 2025 pm 05:36 PM

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

Wie verwenden Sie tabelgesteuerte Tests in Go? Wie verwenden Sie tabelgesteuerte Tests in Go? Mar 21, 2025 pm 06:35 PM

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

See all articles