Lassen Sie uns über Methoden und Schnittstellen in Golang sprechen
Methoden und Schnittstellen in der Go-Sprache sind sehr wichtige Konzepte. Die Beherrschung der Verwendung dieser beiden Wissenspunkte kann die Wiederverwendbarkeit und Flexibilität von Go-Sprachprogrammen verbessern.
Methoden
In der Go-Sprache ist eine Methode eine Funktion, die einem bestimmten Typ zugeordnet ist. Man kann es sich als eine Funktion mit einem speziellen Empfängerargumenttyp vorstellen.
Bei der Deklaration einer Methode steht der Empfängerparameter vor dem Methodennamen. Der Empfänger kann ein Werttyp oder ein Zeigertyp sein. Ein Empfänger vom Typ „Wert“ entspricht dem Erstellen einer Kopie des Werts, und ein Empfänger vom Typ „Zeiger“ übergibt die Adresse des Werts. Dies bedeutet, dass die Verwendung von Zeigertypempfängern effizienter ist, da sie das Kopieren von Werten in Methodenaufrufen vermeiden.
Hier ist ein Beispielprogramm, das zeigt, wie Methoden deklariert und verwendet werden:
package main import "fmt" type Rectangle struct { width, height float64 } func (r Rectangle) area() float64 { return r.width * r.height } func main() { r := Rectangle{3, 4} fmt.Println("Area: ", r.area()) }
Im obigen Beispielprogramm haben wir einen Strukturtyp namens Rechteck definiert. Dieser Typ hat zwei Felder, Breite und Höhe. Wir definieren außerdem eine Methode namens „area“, deren Empfänger vom Typ „Rechteck“ ist und dessen Fläche zurückgibt.
In der Hauptfunktion erstellen wir eine Variable vom Typ Rechteck mit dem Namen r und rufen ihre Flächenmethode auf.
Schnittstelle
Eine Schnittstelle ist ein Typ, der das Verhalten eines Objekts beschreibt. Es definiert eine Reihe von Methoden, implementiert diese jedoch nicht. Die Implementierung seiner Methoden bleibt den jeweiligen spezifischen Typen überlassen.
In der Go-Sprache ist eine Schnittstelle ein Typ, der von jedem anderen Typ implementiert werden kann. Wenn ein Typ alle in der Schnittstelle angegebenen Methoden implementiert, ist der Typ der Implementierungstyp der Schnittstelle.
Hier ist ein Beispielprogramm, das zeigt, wie man eine Schnittstelle deklariert und verwendet:
package main import "fmt" type shape interface { area() float64 perimeter() float64 } type Rectangle struct { width, height float64 } type Circle struct { radius float64 } func (r Rectangle) area() float64 { return r.width * r.height } func (r Rectangle) perimeter() float64 { return 2*r.width + 2*r.height } func (c Circle) area() float64 { return 3.14 * c.radius * c.radius } func (c Circle) perimeter() float64 { return 2 * 3.14 * c.radius } func printShape(s shape) { fmt.Println("Area: ", s.area()) fmt.Println("Perimeter: ", s.perimeter()) } func main() { r := Rectangle{3, 4} c := Circle{5} printShape(r) printShape(c) }
Im obigen Beispielprogramm definieren wir eine Schnittstelle mit dem Namen „Shape“. Diese Schnittstelle definiert zwei Methoden: Fläche und Umfang. Wir haben außerdem zwei Strukturtypen definiert, Rechteck und Kreis, und die von der Formschnittstelle definierten Methoden für diese Typen implementiert. Schließlich definieren wir eine Funktion namens printShape, die einen Parameter annimmt, der die Formschnittstelle implementiert, und die Fläche und den Umfang dieses Typs druckt.
In der Hauptfunktion erstellen wir eine Variable vom Typ „Rechteck“ mit dem Namen r und eine Variable vom Typ „Kreis“ mit dem Namen c und übergeben sie an die printShape-Funktion. Da sowohl die Typen „Rectangle“ als auch „Circle“ die Formschnittstelle implementieren, können sie zur Verarbeitung an die Funktion „printShape“ übergeben werden.
Fazit
In Go sind Sprache, Methoden und Schnittstellen sehr wichtige Konzepte. Sie können uns helfen, Code besser zu organisieren und wiederzuverwenden und die Skalierbarkeit und Flexibilität des Programms zu verbessern. Gleichzeitig können sie die Wartung und das Verständnis unseres Codes erleichtern.
Das obige ist der detaillierte Inhalt vonLassen Sie uns über Methoden und Schnittstellen in Golang sprechen. 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

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

In dem Artikel werden die Verwaltungs -Go -Modulabhängigkeiten über Go.mod erörtert, die Spezifikationen, Aktualisierungen und Konfliktlösung abdecken. Es betont Best Practices wie semantische Versioning und reguläre Updates.
