Heim > Backend-Entwicklung > Golang > Wie kann ich zugrunde liegende Typmethoden für einen benannten Typ in Go aufrufen?

Wie kann ich zugrunde liegende Typmethoden für einen benannten Typ in Go aufrufen?

Susan Sarandon
Freigeben: 2024-12-06 04:43:09
Original
628 Leute haben es durchsucht

How Can I Call Underlying Type Methods on a Named Type in Go?

Aufrufen von Methoden benannter Typen

In Go sind benannte Typen, die mit dem Schlüsselwort „type“ erstellt wurden, unterschiedliche Typen von ihren zugrunde liegenden Typen. Daher können Methoden, die zum zugrunde liegenden Typ gehören, nicht direkt auf dem benannten Typ aufgerufen werden.

Um dieses Problem zu lösen und einen benannten Typ um zusätzliche Methoden zu erweitern und dabei seine ursprüngliche Funktionalität beizubehalten, kann die Einbettungstechnik eingesetzt werden . Durch die anonyme Einbettung des zugrunde liegenden Typs in den benannten Typ werden die Methoden und Felder des eingebetteten Typs innerhalb des benannten Typs hochgestuft und sind zugänglich.

Zum Beispiel, wenn Sie einen benannten Typ StartTime haben, der eine time.Time umschließt value:

type StartTime time.Time

func (st *StartTime) UnmarshalJSON(b []byte) error {...}
Nach dem Login kopieren

Um auf die Methoden von time.Time für den StartTime-Typ zuzugreifen, betten Sie time.Time anonym darin ein StartTime:

type StartTime struct {
    time.Time
}
Nach dem Login kopieren

Jetzt können Sie Methoden wie Date() für StartTime aufrufen, als wären sie direkt für den Typ definiert:

myStartTime.Date()
Nach dem Login kopieren

Dieser Ansatz ermöglicht eine nahtlose Erweiterung von benannte Typen mit zusätzlichen Methoden unter Beibehaltung der ursprünglichen Funktionalität des zugrunde liegenden Typs.

Das obige ist der detaillierte Inhalt vonWie kann ich zugrunde liegende Typmethoden für einen benannten Typ in Go aufrufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage