Heim > Backend-Entwicklung > Golang > Wie initialisiere ich eingebettete Strukturen in Go?

Wie initialisiere ich eingebettete Strukturen in Go?

Mary-Kate Olsen
Freigeben: 2024-11-11 01:30:02
Original
594 Leute haben es durchsucht

How to Initialize Embedded Structs in Go?

Grundlegendes zur Initialisierung eingebetteter Strukturen in Go

Go bietet das Konzept der Einbettung, das es einer Struktur ermöglicht, Felder eines anderen Typs zu enthalten, ohne ihre Implementierung zu duplizieren. Im Kontext eingebetteter Strukturen wird die Initialisierung der anonymen inneren Struktur zu einer wesentlichen Aufgabe.

Anonyme innere Struktur in MyRequest initialisieren

Beachten Sie den folgenden Codeausschnitt, in dem die MyRequest-Struktur die http.Request einbettet struct:

type MyRequest struct {
    http.Request
    PathParams map[string]string
}
Nach dem Login kopieren

Um die anonyme innere Struktur http.Request in der New-Funktion zu initialisieren, können Sie diesen Ansätzen folgen:

  • Verwenden des neuen Schlüsselworts:
req := new(MyRequest)
req.PathParams = pathParams
req.Request = origRequest
Nach dem Login kopieren
  • Verwendung der Strukturliteral-Syntax:
req := &MyRequest{
  PathParams: pathParams
  Request: origRequest
}
Nach dem Login kopieren

Beide Ansätze erreichen das gleiche Ziel der Initialisierung des http .Request-Feld der MyRequest-Struktur mit dem bereitgestellten origRequest-Parameter.

Referenz

Ein tieferes Verständnis der Einbettung und Feldbenennung in Strukturen finden Sie in der offiziellen Go-Dokumentation:

  • https://golang.org/ref/spec#Struct_types

Das obige ist der detaillierte Inhalt vonWie initialisiere ich eingebettete Strukturen in Go?. 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